代码之家  ›  专栏  ›  技术社区  ›  TelJanini

实体框架反向POCO生成器-自定义导航属性

  •  1
  • TelJanini  · 技术社区  · 8 年前

    我目前正在处理一个遗留数据库,它缺少两个表之间的关系。

    基本上,我有一个“项目”表和一个“供应商”表,它们有各自的主键。

    但是,“Items”表包含一个字段“VendorNumber”,用于映射到“Vendors”表 . 这种关系在数据库中没有强制执行,但我仍然希望使用“Vendors”作为“Items”的导航属性。

    我正在使用“反向POCO生成器”,但我无法想出如何“强制”它生成导航属性。

    我尝试创建另一个包含该属性的“ItemConfiguration”部分类,但由于它是在“ItemConfiguration”构造函数中设置的,因此无法实现所需的功能。

    如有任何帮助/见解,将不胜感激!

    1 回复  |  直到 8 年前
        1
  •  2
  •   TheSoftwareJedi jac    8 年前

    创建一个分部类,并将关系添加到来自项的供应商

    public partial class Item
    {
        public virtual Vendor ItemVendor { get; set; } 
    }
    

    为配置创建分部类,并 Input生成的部分类从构造函数调用的InitializePartial方法

    public partial class ItemConfiguration : System.Data.Entity.ModelConfiguration.EntityTypeConfiguration<Item>
    {
        partial void InitializePartial()
        {
            HasOptional(a => a.ItemVendor).WithMany().HasForeignKey(a => a.VendorNumber).WillCascadeOnDelete(false); 
        }
    }
    

    您的Item类现在将填写ItemVendor字段。