0
基本DAL 2を使用して、tabidを持つテーブルのデータを取得します。 DNN APIを介してTab Urlを取得したいと思います。私はTabsテーブルに参加することができましたが、APIで作業したいと思っています。DNN DAL 2水和物およびその他
ここは私のモデルです。
[TableName("My_Products")]
[PrimaryKey("ProductId")]
[Cacheable("My_Products_", CacheItemPriority.Normal, 20)]
public class ProductInfo
{
public ProductInfo()
{
Langs = new List<ProductLangInfo>();
}
public int ProductId { get; set; }
[ReadOnlyColumn]
public string ProductImage { get; set; }
public int LineID { get; set; }
[ReadOnlyColumn]
public string Culture { get; set; }
[ReadOnlyColumn]
public string ProductName { get; set; }
[ReadOnlyColumn]
public string ProductShortDesc { get; set; }
[ReadOnlyColumn]
public int TabId { get; set; }
[ReadOnlyColumn]
public string ProductURL { get; set; } //GET THIS FROM API
[ReadOnlyColumn]
public List<ProductLangInfo> Langs { get; set; }
}
これは私が私のクエリからのtabidに渡すための最良の方法がどこにあるか私の質問があると思います私のコントローラ
public IEnumerable<ProductInfo> GetProducts(string language)
{
using (IDataContext ctx = DataContext.Instance())
{
string sqlCmd = ";WITH cte as (SELECT * FROM [ProductsLang] WHERE Culture = @0)" +
" SELECT Products.*,cte.ProductName, cte.ProductShortDesc, cte.TabId" +
" FROM [Products] as Products" +
" INNER JOIN cte ON Products.ProductId = cte.ProductId";
string order = " ORDER BY Products.ProductId DESC";
return ctx.ExecuteQuery<ProductInfo>(CommandType.Text, sqlCmd + order, language);
}
}
ですDNN API?
私はモデルとコントローラの外でこれをフロントエンドから呼び出す必要がありますか? 私のモジュールは角張ったスパモジュールなので、これを返すためにwebapiサービスを作成しますか? – nextoneup
あなたはそれをプロパティ自体に入れることができますか?だから、URLを取得する呼び出しは、オブジェクトの母集団でそのAPI呼び出しを行いますか?答えにいくつかの情報を追加しましたが、それはテストされていませんでしたが、 –
私はそれもうまくいくと思っていましたが、それはnullとして戻ってきます。 ' public class ProductLangInfo { public int? ProductsId {get;セット; } 公開ストリングProductName {get;セット; } 公開ストリングProductShortDesc {get;セット; } public int TabId {get;セット; } プライベート文字列_productUrl; パブリックストリングProductURL {得る {リターンDotNetNuke.Common.Globals.NavigateURL(TabId)。 } } } – nextoneup