EF有點新,所以如果答案很明顯,請耐心等待。我做了使用EF的教程,和兩個DbSets被這樣定義:實體框架代碼優先:DbSets和導航屬性
public DbSet<BrokerageAccount> BrokerageAccounts { get; set; }
public DbSet<Customer> Customers { get; set; }
客戶類看起來像this--這是一個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和BrokerageAccount之間的主程序中存在一個我沒有遵循的關聯。該代碼讀取這樣的:
public Customer GetCustomer(string custId)
{
using (var context = DataContext)
{
return context.Customers
.Include("BrokerageAccounts").SingleOrDefault(c => c.CustomerCode == custId);
}
}
我無法弄清楚如何關聯/加入的客戶和BrokerageAccount之間進行。我沒有看到我的VS 2010項目中的任何配置或其他文件,它告訴哪些同事使用兩個DbSets,使用什麼外鍵列等。
也許我錯過了某些明顯的東西或某種映射文件,但僅僅因爲客戶擁有BrokerageAccount的ICollection以及上面提到的「導航屬性」註釋,並不是如此。在英孚,這些協會是如何建立的?
「只是因爲客戶擁有BrokerageAccount的ICollection以及上面的說明」導航屬性「的註釋,但並非如此。」那麼,評論不會,但屬性本身就是這樣。 EF Code First將查找「ICollection」屬性並與由「T」表示的實體建立關係。 –
2012-04-09 00:03:44
很高興認識Matt,謝謝。有沒有一個網頁概述Code First在建立關係時會嘗試的步驟? – larryq 2012-04-09 03:26:24