实体框架代码优先和数据库优先错误/冲突

发布于 2024-10-08 12:58:32 字数 651 浏览 1 评论 0原文

我在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

谁许谁一生繁华 2024-10-15 12:58:32

实体框架不使用命名空间作为名称的一部分 - 实体名称本身必须是唯一的。

Entity Framework does not use the namespace as part of the name - entity names themselves must be unique.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文