0

私はリンクとコンテンツ、ニュースエンティティを持っています。EFコアは、子プロパティの値を追加するときにカラムを設定します。

**Link**: Id, Url, RowId, Discriminator 
**Content**: Id, Text, Link 
**News**: Id, Date, Text, Link 

新しいコンテンツやニュースを追加すると、自動的にRowIdが挿入IDに設定されます。 これは、Link.Urlで解決するエンティティを修正する必要があります。

私はLink.DiscriminatorとLink.RowIdを持っていますので、必要なIDでどのエンティティ(コンテンツまたはニュース)を確認することができます。

この問題を解決するお手伝いをします。

+0

たとえば、URLハッシュを計算して明示的にリンクIDに割り当てようとしましたか? –

+0

質問がContent/News => RowIdをLink.RowIdに割り当てているかどうかわからない、またはRowIdとDiscriminatorに基づいて関連するデータコンテンツ/ニュースをロードする方法がわかります。 –

答えて

0

私が理解する限り、これはおおよそのものであるべきです。

public void AddContent(string Text, string Link) 
{ 
    var content = new Content { 
     Text = Text, 
     Link = Link 
     }; 

    //The id is collected when you add the Entity to the context 
    dbContext.SaveChanges(); 

    dbContext.Link.Add(new Link { 
     Url = <whatever>, 
     RowId = content.Id, 
     Discriminator = "Content" 
    }); 

    dbContext.SaveChanges(); 
}