dotnetnuke 7 で DAL2 の使用を開始しました。インスタンスが使用する SQL サーバー データベースでビューを作成した複雑なクエリがいくつかあります。これらのビューから単純な選択にアクセスするためのベスト プラクティスは何ですか。
以下を使用すると、dbOwner と ObjectQualifier がバイパスされます。
Public Function GetProducts_Short_Active() As IEnumerable(Of Object)
Using ctx As IDataContext = DataContext.Instance
Return ctx.ExecuteQuery(Of Object)(CommandType.Text, "SELECT * FROM dbo.vw_ProductList_Short_Active", Nothing)
End Using
End Function
質問: または、以下のようにビューの名前であるテーブル名注釈を使用して、(各テーブルに対して行ったように) 各 sql-server-view に対してクラスとプロパティを定義する必要がありますか?
<TableName("vw_ProductList_Short_Active")> _
<PrimaryKey("ProductId")> _
<Cacheable("ProductList_Short_Active", CacheItemPriority.Default, 20)> _
<Scope("PortalId")>
Public Class ProductList_Short_Active
''view properties go here
End Class
編集1:
この記事は、ビューを使用するべきではなく、必要な「結合された」データ レコードを表す iEnumerable の無視可能な列を使用して製品クラスを拡張することを示しているようです。それは正確ですか?