3

我是 EF 的新手,我无法弄清楚我做错了什么。我使用 EF 4.1“数据库优先”为现有数据库创建模型(我无法更改)。我在数据库中需要的所有表都在一个特定的模式中,对于这个问题,我将其称为“my_schema”。在 edmx 设计器文件的主要属性中,我将数据库模式名称设置为“my_schema”。当我检查 edmx 文件的原始 XML 时,它似乎具有正确的架构映射

例如

<EntitySet Name="Events" EntityType="MyModel.Store.Events" store:Type="Tables" Schema="my_schema" />

但是,当我访问 DbContext 类上的 Events 实体集时生成的 SQL 仍然是:

SELECT ....
FROM dbo.Events

我不确定它是否有任何区别,但我正在使用 ADO.net DBContextGenerator 来生成我的类。

有谁知道我做错了什么。

4

1 回答 1

1

好的,我现在已经对此表示怀疑,归结为我对 EF 的工作原理一无所知。我正在向我的 DbContext 传递一个普通的 ADO.net 连接字符串,这似乎将其转换为代码优先模式。因此,我的 edmx 模型中的任何设置和配置都被忽略了,它正在寻找模型类的属性。一旦我将其更改为使用包含对模型元数据文件的引用的 EF 字符串,它就可以工作。现在似乎很明显,不知道我如何期望它神奇地了解模型元数据。

于 2011-11-17T15:22:40.137 回答