【发布时间】:2015-02-14 08:52:58
【问题描述】:
我可以将已经是我项目一部分的实体用作实体框架实体。
我的项目遵循领域驱动设计,其中包含代表我的数据库表的所有实体。
我不希望 Entity Framework 从我现有的数据库中生成新实体,而是希望它使用我项目中的现有实体。
每当我像这样在数据库上下文类中使用我现有的实体时:
public DbSet<SomeOtherProjectInSoulution.ChequeBookRequestAuditLog> ChequeBookRequestAuditLogs { get; set; }
public DbSet<SomeOtherProjectInSoulution.OfflinePayOrderRequestAuditLogEntity> OfflinePayOrderRequestAuditLogEntities { get; set; }
public DbSet<SomeOtherProjectInSoulution.FundsTransferAuditLogEntity> FundsTransferAuditLogEntities { get; set; }
它给了我以下错误:
实体类型 FundsTransferAuditLogEntity 不是当前模型的一部分 上下文。
即使这些实体是实体框架创建的实体的精确副本,但我删除了它们
数据库上下文:
public partial class PRISMEntitiesTest : DbContext
{
public PRISMEntitiesTest()
: base("name=PRISMEntitiesTest")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public DbSet<Application.Domain.AuditLog.ChequeBookRequestAuditLog> ChequeBookRequestAuditLogs { get; set; }
public DbSet<Application.Domain.AuditLog.OfflinePayOrderRequestAuditLogEntity> OfflinePayOrderRequestAuditLogEntities { get; set; }
public DbSet<Application.Domain.AuditLog.FundsTransferAuditLogEntity> FundsTransferAuditLogEntities { get; set; }
}
【问题讨论】:
-
请显示更多代码,说明您如何定义
DbContext类。您要做的只是“EF Code First”,我一直在使用它,没有任何问题。您可以定义自己的 POCO,并使用它们来定义您的 Code First 模型。 -
@JotaBe 我以某种方式解决了这个问题,但是每次我在我的设计器视图中进行一些更改时...重新生成 Db 上下文代码,它删除了对我明确定义的这些 POCO 的引用。以上问题有什么解决办法吗?
-
你的数据库上下文构造函数是什么?
-
@marianoc84:添加有问题...
标签: entity-framework entity-framework-5 domain-driven-design entities