.WithRequired在EF Fluent API中扮演什么角色?

6 .net ado.net entity-framework

如果我有以下对象:

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; }
}
Run Code Online (Sandbox Code Playgroud)

EF Mapping看起来像这样:

modelBuilder.Entity<Application>()
    .HasMany(a => a.TestAccounts)
    .WithRequired(t => t.Application)
    .WillCascadeOnDelete(false);
Run Code Online (Sandbox Code Playgroud)

这两者之间的关系是我可以拥有零或多个TestAccounts的应用程序.

我试图描述两个表之间的fk关系.有人可以解释".WithRequired"的作用.我不明白为什么需要这样做.

Mat*_*att 11

这意味着每个TestAccount实体必须有一个Application与之关联的实体.我想一种方法就是这样:

如果在您的数据库中,您有另一个表的外键并且该外键是NOT NULL,则使用WithRequired,否则如果它可以为NULL,则使用WithOptional

以下是一些值得关注的文档:

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