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);

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

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

4

1 回答 1

13

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

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

以下是一些值得一看的文档:

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

于 2013-03-06T05:53:20.143 回答