5

我在 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 中的错误还是我的错?

4

1 回答 1

3

Entity Framework 不使用命名空间作为名称的一部分——实体名称本身必须是唯一的。

于 2010-12-27T17:13:11.680 回答