0

Linq to Entites に苦労しています。私はEF5とLinqが初めてです。私はVB.NETでプログラミングしています。DataSets を DAL として BLL に返すテーブル アダプターを使用しており、それを ObjectDataSource にリンクしています。今、VS2005 ASP.NET 2.0 から ASO、.NET 4.0 に VS2005 ASP.NET 2.0 から VS2012 にアップグレードして EF5 を使用し、EF5 を DAL としてセットアップしました。BAL を書き直して、Linq to Entities を使用して ObjectDataSource に移動しようとしています。外部キーでセットアップしたナビゲーションを使用して、複数のテーブルに対して複雑なクエリを実行できますが、DataSet を期待する ObjectDataSource で動作するように戻り値の型を取得する方法がわかりません。

ContentQ = From ct In DAL.Contents, cd In ct.ContentDuplicateTypes, ce In ct.ContentEditors _
           Where ct.ContentId = Contentid And cd.ShowOnWeb = ShowOnWeb And cd.Hide = Hide And ce.UserId = UserId And ct.websiteId = websiteid Select ct, cd, ce

たとえば ContentQ= From ct in DAL.Contents select ct などの単一のテーブルを返す場合

なぜこれが以下で機能するのですか?include メソッドを使用して 1 対多の 2 テーブルを持つ ObjectDataSource にこのクラスを設定する必要があるのはなぜですか?

<System.ComponentModel.DataObjectMethodAttribute(ComponentModel.DataObjectMethodType.Select, True)> _
Public Function GetContentFiles() As ContentData
    Dim objContentData As New ContentData

    Using _SBEF As New SBEF5
        Dim objContentDuplicateType = From d In _SBEF.ContentDuplicateTypes.Include("Content") Select d

        For Each objQuery In objContentDuplicateType.ToList
            With objContentData
                'Content

                .Description = objQuery.Content.Description
                .FileName = objQuery.Content.FileName
                .Draft_Path = objQuery.Content.Draft_Path
                .Live_Path = objQuery.Content.Live_Path
                .HeaderTitle = objQuery.Content.HeaderTitle

                'ContentDuplicateType
                .ContentId = objQuery.ContentId
                .DisplayHeader = objQuery.DisplayHeader
                .OrderNumber = objQuery.OrderNumber
                .ShowOnWeb = objQuery.ShowOnWeb
                .Hide = objQuery.Hide
                .DateCreated = objQuery.DateCreated
                .ContentTypeID = objQuery.ContentTypeId
            End With
        Next

        GetContentFiles = objContentData

    End Using

End Function
4

1 に答える 1

1

EntityDataSourceを利用しないのはなぜですか?

于 2013-03-24T05:00:41.400 に答える