我正在研究將大型項目遷移到實體框架4.0,但不知道它是否可以處理我的繼承場景。實體框架 - 多項目支持
我有幾個項目從「主」項目中的對象繼承。下面是一個簡單的基類:
namespace People
{
public class Person
{
public int age { get; set; }
public String firstName { get; set; }
public String lastName { get; set; }
}
}
和子類中的一個:
namespace People.LawEnforcement
{
public class PoliceOfficer : People.Person
{
public string badgeNumber { get; set; }
public string precinct { get; set; }
}
}
而這正是該項目的佈局看起來像:
People - People.Education - People.LawEnforcement http://img51.imageshack.us/img51/7293/efdemo.png
一些客戶的應用程序將使用People.LawEnforcement中的類,其他用戶將使用People.Education,並且一些將使用兩者。我只運送用戶需要的組件。所以彙編有點像插件,它們爲核心應用增加了特性。
在Entity Framework中是否有支持這種情況的方法?
基於this SO question我覺得這樣的事情可能工作:
ctx.MetadataWorkspace.LoadFromAssembly(typeof(PoliceOfficer).Assembly);
但是,即使是工作那麼它的接縫,彷彿我的EDMX文件將需要了解的所有項目。我寧願讓每個項目都包含該項目中類的元數據,但我不確定這是否可行。
如果這是不可能的實體框架是否有另一種解決方案(NHibernate的,活動記錄等),將工作?
它看起來像Code-Only就是要走的路。只能將代碼與EDMX模型結合使用?例如在我的主項目中有一個EDMX(在我的例子中是Person),然後在其他項目中執行代碼? – TonyB 2009-12-18 16:30:50
那麼Code-Only背後的想法就是沒有EDMX。當然,在引擎蓋下,會生成相同的信息,您可以使用WriteEDMX()方法掛起ContextBuilder將其轉換爲EDMX格式。因此,我的建議是在任何地方使用Code-Only,包括您的主項目,並且只有在需要可視化模型時才使用WriteEDMX。 – 2009-12-18 20:43:46