实体框架代码首先使用不同项目中的模型

D3v*_*3vy 4 c# asp.net-mvc entity-framework-6

晚上,我相信这可能很简单......但我做错了.

我正在尝试使用3个(现在的)项目创建一个解决方案:

  1. MCV Web App
  2. 楷模
  3. DAL(实体框架)

我想保持模型从UI和DAL不同的项目/组件,因为这些模型将成为项目之间重复使用,我们可能需要换出DAL等,而无需做手脚模型等...

无论如何,解决问题.

我在我的模型项目中创建了一些类,如:

public class Client
{
    public int ClientID { get; set; }
    public string Name { get; set; }
    public string Address { get; set; }
    public string PhoneNumber { get; set; }
    public string Notes { get; set; }
    public virtual Contact BillingContact { get; set; }
    public virtual ICollection<Contact> Contacts { get; set; }

    public virtual ICollection<Invoice> Invoices { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后我在DAL中创建了一个DBContext

using System.Data.Entity;
using DBDS.Invoice.Models;

namespace DBDS.Invoice.DAL.EF
{
    public class InvoiceDataContext : DbContext
    {
        public DbSet<Client> Clients;
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经在DAL项目上启用了迁移,添加了一个迁移并调用了update-database - 数据库已经创建但没有表.

无论如何,我确定我是密集的 - 任何帮助将不胜感激.

谢谢

DLe*_*Leh 6

Clients 需要成为实体框架的一个属性来获取它

public class InvoiceDataContext : DbContext
{
    public DbSet<Client> Clients { get; set; }
}
Run Code Online (Sandbox Code Playgroud)