7

次のオブジェクトがある場合:

public class Application 
{
    public int ApplicationId { get; set; }
    public string Name { get; set; }
    public virtual ICollection<TestAccount> TestAccounts { get; set; }
}

public class TestAccount
{
    public int TestAccountId { get; set; }
    public int ApplicationId { get; set; }
    public string Name { get; set; }
    public virtual Application Application { get; set; }
}

EFマッピングは次のようになります。

modelBuilder.Entity<Application>()
    .HasMany(a => a.TestAccounts)
    .WithRequired(t => t.Application)
    .WillCascadeOnDelete(false);

これら2つの関係は、TestAccountがゼロまたは多数のアプリケーションを使用できることです。

2つのテーブル間のfk関係を説明しようとしています。誰かが「.WithRequired」が何をするのか説明できますか?なぜこれが必要なのかわかりません。

4

1 に答える 1

13

これは、各エンティティにエンティティが関連付けられTestAccountている必要があることを意味します。これを表現する1つの方法は、次のようになります。Application

DBに別のテーブルへの外部キーがあり、その外部キーがNULLでないWithRequired場合は、を使用します。NULLになる可能性がある場合は、を使用します。WithOptional

ここに一見の価値があるいくつかのドキュメントがあります:

http://msdn.microsoft.com/en-us/data/jj591620.aspx

于 2013-03-06T05:53:20.143 に答える