【发布时间】:2011-03-27 14:08:02
【问题描述】:
我首先在我的一个项目中使用新的 EF 代码,但我遇到了一个奇怪的错误,我的模式是:
abstract class Member
{
public virtual int MemberId;
... some other stuff
}
class User : Member
{
public virtual string Name;
... some more props no new key defined
}
class MyDbContext
{
public DbSet<User> Users {get;set;}
}
部署到 SQL Server 的结果还不错,我有一个成员表和一个用户表 (TPC)。 现在我主要有以下代码:
static Main()
{
User x,y;
using(MyDbContext ctx = new MyDbContext())
{
x = ctx.Users.Create();
y = ctx.Users.Create();
x.Name = "SomeUser";
y.Name = "SomeUser2";
ctx.SaveChanges();
}
}
在保存更改时我得到:
“未处理的异常: System.Data.Entity.Infrastructure.DbUpdateException: 更新时出错 条目。请参阅内部异常 细节。 ---> System.Data.UpdateException:一个错误 更新条目时发生。 有关详细信息,请参阅内部异常。 ---> System.Data.SqlClient .SqlException:违反PRIMARY 键约束 'PK_用户_0CF04B1821B6055D'。不能 在对象中插入重复键 'dbo.Users'。”
MemberId 默认情况下是身份,所以我只是看不到这里发生了什么。我尝试使用 new 创建实例并将它们附加到上下文但错误是相同的,有什么想法吗? 数据库为空!
谢谢。
编辑:忘了告诉 Member 是一个抽象类,抱歉。
【问题讨论】:
标签: c# entity-framework ef-code-first entity-framework-4.1