0

私は本当の問題を抱えていますが、それは私が十分に知らないからだとわかっています。約 50 件の記事を検索しましたが、答えが見つかりません。

これが私のドメインモデルです

Namespace Models
    Public Class Article
        Public Property ArticleId As Integer
        Public Property Author As String

        <DisplayFormat(DataFormatString:="{0:D}")>
        Public Property CreatedOn As DateTime

        <DisplayFormat(DataFormatString:="{0:D}")>
        Public Property LastModified As DateTime

        <AllowHtml()>
        Public Property Content As String
        Public Property Title As String
        Public Property Excerpt As String
        Public Property IsPublic As Boolean

        Public Overridable Property Category As ICollection(Of Category)
        Public Overridable Property Tags As ICollection(Of Tag)
        Public Overridable Property Status As ICollection(Of Status)
        Public Overridable Property Comments As ICollection(Of Comment)
    End Class
End Namespace


Namespace Models
    Public Class Status
        Public Property StatusId As Integer
        Public Property Name As String

        Public Overridable Property Articles As ICollection(Of Article)
    End Class
End Namespace


Namespace Models
    Public Class Category
        Public Property CategoryId As Integer
        Public Property Name As String

        Public Overridable Property Articles As ICollection(Of Article)
    End Class
End Namespace

Namespace Models
    Public Class Tag
        Public Property TagId As Integer
        Public Property Name As String

        Public Overridable Property Articles As ICollection(Of Article)
    End Class
End Namespace

これが私のViewModelです(私のドメインモデルに基づいています)

Namespace ViewModels.Admin
    Public Class ArticleViewModel
        Public Property Article As Article
        Public Property CategoryId As Integer
        Public Property StatusId As Integer
        Public Property Tags As ICollection(Of Tag)
    End Class
End Namespace

これらすべてのデータ交差パターンで保存する方法がわかりません。私は今、非常に多くの方法を試しましたが、どこを見ればよいかわかりません。私はいくつかの本を試しましたが、誰もこれを本当に掘り下げていません. Contoso University のプロジェクトも調べましたが、私のプロジェクトとは思えません。誰でも助けることができますか?

4

1 に答える 1

1

Entity Framework を使用して DAL を実行している場合、これは非常に簡単に実行できます。オブジェクトを上から下に構築するだけです。したがって、この例では、ViewModel から記事を取得し、View Model の他の部分からそのナビゲーション プロパティを設定します。

サブ オブジェクトのナビゲーション プロパティの接続について心配する必要はありません。

次に、articles コレクションで AddObject を使用してこの記事をコンテキストに追加できます。すべてのサブ プロパティも挿入して接続する必要があります。

Db に既に存在する可能性のあるサブ プロパティに注意してください。マッピング テーブルなどを更新するだけでなく、ID を持っていても、EF がこれらの項目に挿入するのを見てきました。

于 2012-09-03T08:10:42.390 に答える