使用Entity Framework,每当我在Visual Studio中“从数据库更新模型”时,创建的模型都无法使用。
问题是EF不能很好地处理没有主键的表。它将它们视为视图,这反过来又阻止您使用EF编辑表。您可以通过将模型(edmx文件)作为XML文件打开并对EntitySet定义进行一些更改来覆盖此行为。一遍又一遍地做这件事很烦人。除了在每次更新后添加主键或修改edmx文件之外,有没有人找到更永久的解决方法?
顺便说一句,我使用的是一个独特的键,但它分布在两列中。如果EF可以处理这个问题会很好,但是从EF 4.2开始它就没有了。
答案 0 :(得分:4)
我不明白 - 您使用的是“唯一键”(我假设您的意思是唯一索引或唯一约束),因为该键有两列?您可以创建具有多个列的主键。我不确定为什么EF会以不同于单列主键的方式处理双列键,但这是一个多列主键的简单示例:
CREATE TABLE dbo.foobar
(
fooID INT,
barID INT,
PRIMARY KEY (fooID, barID)
);
当然还有其他语法允许你在事后创建约束,你还应该明确地命名你的约束,但只想展示一个简单的例子。
答案 1 :(得分:3)
顺便说一句,我使用的是一个独特的键,但它分布在两列中。如果EF可以处理这个问题会很好,但是从EF 4.2开始它就没有了。