2013-02-28 59 views
0

我有兩個用於數據模型和數據庫上下文的庫。數據模型和類庫 - 如何將虛擬商品添加到其他類庫中的對象?

  1. 基本與對象

    public class Person 
    { 
        [Key] 
        public int ID { get; set; } 
        public string Name { get; set; } 
        public string SName { get; set; } 
        public bool IsSystemUser { get; set; }    
    } 
    
  2. 擴展

    public class Vehicle 
    { 
        [Key] 
        public int Id { get; set; } 
        public string Name { get; set; } 
        public string Plate { get; set; }  
        public virtual ICollection<Person> Users { get; set; } 
    } 
    

如何添加公共虛擬ICollection的車輛{獲得;組;在第一類庫中對象。 EF正確生成數據庫。

+0

你想改變加載的類庫中的類?您只能添加方法,而不是屬性 – hcb 2013-02-28 08:09:42

+0

那麼我該如何添加方法? – SpoksST 2013-02-28 08:14:52

+0

請解釋你想做什麼,並使用適當的條款來避免混淆。你有兩個_classes_,他們在同一個項目中嗎?然後他們在同一個大會,因此在同一個班級圖書館。你只是想添加一個屬性'公共虛擬ICollection車輛{搞定;組; }'到'Person'類,然後這樣做,你很好走。如果你想動態地實現它,那麼在運行時,事情會變得更加困難。首先,因爲實體框架幾乎不會使用您的擴展方法來創建列或表。 – CodeCaster 2013-02-28 08:20:32

回答

0

在第二個庫我想延長人在第一庫中定義的,所以它可以有很多與排在第二的對象很多關係圖書館。

可以擴展基礎庫的Person類:

using BasePerson = BaseLibrary.Person; 

public class Person : BasePerson 
{ 
    public virtual ICollection Vehicles { get; set; } 
} 

這隻會工作,如果你也延長了的DbContext:當您使用MyExtendedContext你就可以

using BaseContext = BaseLibrary.MyContext; 

public class MyExtendedContext : BaseContext 
{ 
    public new DbSet<Person> Persons { get; set; } 
} 

現在訪問車輛收集。

+0

我無法編譯項目 - 如果我這樣做'DataModels.Extended.DBContext.Persons':類型必須是'System.Data.Entity.DbSet '以匹配重寫的成員'DataModels.Basic.DBContext'。人' – SpoksST 2013-02-28 08:41:27

+0

但我認爲這正是我渴望的。 – SpoksST 2013-02-28 08:42:21

+0

哦,當然。請參閱編輯。 – CodeCaster 2013-02-28 08:43:01

相關問題