如何在EF Core 2.0中从不同的程序集创建一对一的关系

时间:2018-04-05 09:28:24

标签: c# entity-framework entity-framework-core

我想在我的项目中使用简单的表格拆分来了解它,但是如何在不同的程序集中进行此操作? 我有两个名为MyApp.CoreMyApp.CommerceService的类库 在.Core项目中,我有User实体:

  public partial class User
    {
        public long UserId { get; set; }

        public string Username { get; set; }

        public string Email { get; set; } 

        public Customer Customer { get; set; } 
    }

.CommerceService我有Customer实体:

  public partial class Customer
    {
        private ICollection<Address> _addresses;

        public Customer()
        {
            this.CustomerGuid = Guid.NewGuid();
        }

        public long UserId { get; set; } 

        public User User { get; set; } 

        public Guid CustomerGuid { get; set; }

        public int VendorId { get; set; }

        public virtual Address BillingAddress { get; set; }

        public virtual Address ShippingAddress { get; set; }

        public virtual ICollection<Address> Addresses
        {
            get { return _addresses ?? (_addresses = new List<Address>()); }
            protected set { _addresses = value; }
        }
    }

如果将Customer实体置于.Core项目中,那就没关系了。现在我有添加程序集引用的问题,因为这会产生循环。 我是学生,请给我一个提示。谢谢。

1 个答案:

答案 0 :(得分:0)

你的问题是你的项目循环依赖,解决这个问题的最简单方法是将所有实体提取到另一个项目我将创建一个新项目MyApp.Entities或MyApp.DataAccess。

将所有实体放在此项目中,然后您可以从coreService和CommerceService引用此项目。我还建议移动任何EF相关文件,例如上下文。