我觉得我在这里缺少一些基本的设置步骤,但我已经在几个小时内浏览论坛帖子,博客文章和视频,并且仍然遇到同样的问题,所以我觉得是时候发帖了。
我得到的错误是: 无法找到EntityType'qTrade.BusinessLayer.Domain.Model.Audit.LoanPool'的映射和元数据信息。
我有一个名为Audit.edmx的实体模型文件,它关闭了代码生成。在那里,我从数据库中为此表生成了一个实体(从创建脚本粘贴,LoanPoolAuditId是主键):
CREATE TABLE [Audit].[LoanPool](
[Type] [char](1) NULL,
[TableName] [varchar](128) NULL,
[PK] [varchar](1000) NULL,
[FieldName] [varchar](128) NULL,
[OldValue] [varchar](1000) NULL,
[NewValue] [varchar](1000) NULL,
[UpdateDate] [datetime] NULL,
[UserName] [varchar](128) NULL,
[CommonID] [int] NULL,
[LoanPoolAuditId] [int] IDENTITY(1,1) NOT NULL,
我在同一个项目的其他地方创建了一个POCO课程
public class LoanPool
{
public int CommonID { get; set; }
public string FieldName { get; set; }
public int LoanPoolAuditId { get; set; }
public string NewValue { get; set; }
public string OldValue { get; set; }
public string PK { get; set; }
public string TableName { get; set; }
public char Type { get; set; }
public DateTime UpdateDate { get; set; }
public string UserName { get; set; }
}
我有上下文类
public class AuditContext : ObjectContext
{
public AuditContext()
: base("name=AuditEntities", "AuditEntities")
{
this.LoanPools = CreateObjectSet<LoanPool>();
}
public ObjectSet<LoanPool> LoanPools { get; set; }
}
继承连接字符串
"metadata=res://*/EntityModels.Audit.csdl|res://*/EntityModels.Audit.ssdl|res://*/EntityModels.Audit.msl;provider=System.Data.SqlClient;provider connection string="data source=serverName;initial catalog=databaseName;persist security info=True;user id=*SNIP*;password=*SNIP*;multipleactiveresultsets=True;App=EntityFramework""
非常简单(或者我认为)。
当我去实例化上下文的实例时,我在CreateObjectSet步骤中得到了上述错误。
任何建议都会受到高度赞赏,即使它们很简单也很明显,这是我第一次使用POCO,所以我很有可能错过了一些东西。
Go figure我在另一个项目中使用代码优先没有问题:-P
由于
答案 0 :(得分:1)
我们通常建议使用DbContext作为EF 4.1或更高版本的主要操作方式。在这种情况下,您需要删除现有的.edmx并修改AuditContext,如下所示:
public class AuditContext : DbContext
{
public DbSet<LoanPool> LoanPools { get; set; }
}
您还可以在官方博客上看到相应的演练:http://blogs.msdn.com/b/adonet/archive/2011/03/15/ef-4-1-code-first-walkthrough.aspx。此外,您需要将[Key]属性放在LoanPoolAuditId上,因为它不符合预期的约定。这也在博客文章中提到过。
HTH, 标记