实体框架代码优先和数据库优先错误/冲突
我在 VS 2010 解决方案中有两个项目:Data 和 DataForm。在我的数据项目中,我同时拥有同一数据模型的代码优先和数据库优先版本(例如 DataPoco 和 DataDb)。这些类在其中具有相同的实体名称,等等...这两个版本各自位于自己的命名空间中:DataDb 位于 Data 中,DataPoco 位于 Data.Poco 中。
在我的 DataForm 项目中,我有以下代码:
DataPoco context = new DataPoco(); //Data.Poco.DataPoco
foreach(var u in context.Urls) //Data.Poco.Url
{
//do stuff with u.
}
枚举 context.Urls
时(并由于延迟加载而加载),出现以下错误:
找不到“Data.Url”的概念模型类型。
为什么我在 OTHER 版本中收到有关实体的错误(例如,当我枚举 Data.Poco.Url 时如何收到有关 Data.Url 的错误)?代码优先是否有一些东西使它在另一个命名空间但在同一个项目中获取数据库优先实体类?这是 Code First 中的错误还是我的错?
I have two projects in a VS 2010 solution: Data and DataForm. In my Data project I have both a Code first and Database first version of the same data model (e.g. DataPoco and DataDb). These classes have the same exact entity names within them, etc... These two versions are each in their own namespace: DataDb is in Data and DataPoco is in Data.Poco.
In my DataForm project I have the following code:
DataPoco context = new DataPoco(); //Data.Poco.DataPoco
foreach(var u in context.Urls) //Data.Poco.Url
{
//do stuff with u.
}
I get the following error when context.Urls
is enumerated (and loaded due to lazy-loading):
Could not find the conceptual model type for 'Data.Url'.
Why am I getting an error about an entity in the OTHER version (e.g. how can I get an error about Data.Url when I'm enumerating Data.Poco.Url)? Is there something about code first that is making it pick up the Database first entity classes in another namespace but in the same project? Is this a bug in Code First or my fault?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
实体框架不使用命名空间作为名称的一部分 - 实体名称本身必须是唯一的。
Entity Framework does not use the namespace as part of the name - entity names themselves must be unique.