【发布时间】:2011-10-05 21:58:35
【问题描述】:
我觉得我在这里遗漏了一些基本的设置步骤,但我已经在论坛帖子、博客文章和视频中费了几个小时,并且一直遇到同样的问题,所以我认为是时候发帖了。
我得到的错误是: 找不到 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,所以很有可能我错过了一些东西。
想想我在另一个项目中使用代码优先没有问题:-P
谢谢
【问题讨论】:
标签: entity-framework entity-framework-4.1 poco