对 EF 来说有点新,所以如果这个问题的答案很明显,请多多包涵。我正在做一个使用 EF 的教程,两个 DbSet 的定义如下:
public DbSet<BrokerageAccount> BrokerageAccounts { get; set; }
public DbSet<Customer> Customers { get; set; }
客户类看起来像这样——它是一个 POCO(为简洁起见,一些代码被删减):
public class Customer
{
public Customer()
{
BrokerageAccounts = new HashSet<BrokerageAccount>();
}
// Primitive properties
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
// Navigation properties
public ICollection<BrokerageAccount> BrokerageAccounts { get; set; }
}
}
BrokerageAccount 类也是一个 POCO,在设计上与 Customer 非常相似。
到现在为止还挺好。我有疑问的代码如下。我没有遵循 Customer 和 BrokerageAccount 之间的主程序中的关联。代码如下所示:
public Customer GetCustomer(string custId)
{
using (var context = DataContext)
{
return context.Customers
.Include("BrokerageAccounts").SingleOrDefault(c => c.CustomerCode == custId);
}
}
我不知道如何在客户和 BrokerageAccount 之间建立关联/加入。在我的 VS 2010 项目中,我没有看到任何配置或其他文件来说明两个 DbSet 关联的内容、要使用的外键列等。
也许我遗漏了一些明显的东西或某种映射文件,但仅仅因为客户有一个 BrokerageAccount 的 ICollection 以及上面写着“导航属性”的评论,并没有做到这一点。在 EF 中,这些关联是如何建立的?