【发布时间】:2011-01-15 21:57:32
【问题描述】:
我刚刚为 EF4 安装了 POCO 模板。我的模型中有一个实体 AnnouncementText,并且 T4 文件似乎已正确生成。当我访问自动生成的属性MyObjectContext.AnnouncementTexts 时,尝试访问这个新实体会引发以下错误:
InvalidOperationException:找不到实体类型“MyNamespace.AnnouncementText”的映射和元数据信息。
AnnouncementText POCO 上的属性似乎与数据库中的列匹配,并且我没有更改任何自动生成的代码。
堆栈跟踪是:
at System.Data.Objects.ObjectContext.GetTypeUsage(Type entityCLRType)
at System.Data.Objects.ObjectContext.GetEntitySetForNameAndType(String entitySetName, Type entityCLRType, String exceptionParameterName)
at System.Data.Objects.ObjectContext.CreateObjectSet[TEntity](String entitySetName)
at MyNamespace.MyObjectContext.get_AnnouncementTexts() in C:\<snip>\MyObjectContext.Context.cs:line 65
at MyNamespace.Class1.Main() in C:\<snip>\Class1.cs:line 14
如果我从解决方案中删除 .tt 文件并在模型上启用代码生成,我可以毫无问题地访问该属性。
这是我的代码,以防万一:
using (var context = new MyObjectContext())
foreach (var at in context.AnnouncementTexts)
Console.WriteLine(at.Title);
有什么想法可能是错的吗?
【问题讨论】:
-
您的项目中有多个 edmx 文件吗?
-
恐怕我只是添加了一个 edmx 来测试 iirc 的功能,尽管自从发布这个问题后我已经转移到 VS 2010 RC1。由于 POCO 模板才可用几天,我还没有机会查看我的问题是否仍然存在。
标签: entity-framework poco efpocoadapter