2011-08-02 3 views
0

SQL 2008 LinqとEntity Framework 4を使用します。私のデータベースとEFでViewを使用して読み取り専用パフォーマンスを向上させることはできますか?

私のデータベースには、CmsContentsというテーブルがあります。 この表にはTitle,CategoryIdなどのような多くのフィールドがあり、かなり重いものはHtmlCodeのようなものがあります。

私のフロントエンドの多くの部分で、私は下降順でのみいくつかのフィールドの例のみTitleCategoryIdのように私のテーブルCmsContentsのを表示する必要があります。

質問: 私は(提出を除外している:HtmlCode)私のテーブルCmsContentsのための部分的なビューを使用した唯一のパフォーマンスを読んで改善することができますか? 私はこのビューをEFのモデルにマップし、Linqを使用してフロントエンドで設計結果を取得します。

私の目的は、パフォーマンスを向上させ、Linq to EntityクエリでAnonymousTypeを使用しないようにすることです。

あなたはどう思いますか教えてください。

ありがとうございました。

答えて

2

不必要なデータをロードする必要がないように、必要なフィールドのみを選択できます。それは匿名である必要はありません。 例:

var result = from c in dbContext.CmsContents select new CmsContent 
{Title = c.Title, CategoryId = c.CategoryId} 

編集:あなたの.CmsContentsは、私はそれだと思うIEnumerables、であれば、これは動作するはずです、あなたのコードでこれを試してみてください。

var contents = context.CmsGroupsTypes 
.Single(g => g.GroupTypeId == 1) 
.CmsContents 
.Select(cms=>new CmsContent{Title = cms.Title, CategoryId = cms.CategoryId}) 
+0

あなたのご意見ありがとうございます。以前はあなたの構文を見たことがありませんでした。このコードに同じことをどのように適用できますか? var contents = context.CmsGroupsTypes.Single(g => g.GroupTypeId == 1).CmsContents; – GibboK

+0

ありがとう、それは素晴らしい仕事です! – GibboK

関連する問題