【发布时间】:2011-03-17 16:48:36
【问题描述】:
我有一个小问题。当我将一个新项目添加到我的数据库(EF)中时,我有一个 UpdateEception:无法更新 EntitySet 'UserRoles',因为它有一个 DefiningQuery 并且元素中不存在支持当前操作的元素。 em>
我有一张很小的桌子。
Users :
- [PK] UserID
- Login
- Password
- Email
- IsActive
Roles :
- [PK] RoleID
- Name
UserRoles :
- [FK] UserID
- [FK] RoleID
获取方法
User u = db.Users.Single(x => x.Login == "scott");
工作正常,但不能插入:/ 我尝试了很多方法。我尝试将 PK 添加到 UserRoles,它可以工作,但不会像现在这样。关系将是多 -> 一 -> 多,而不是多对多,我必须有一个额外的类。我不知道如何解决这个问题。
我的实体类太简单了。角色类中的列表和用户类中的列表是虚拟的。
public class TestDBEntity : ObjectContext
{
public ObjectSet<Role> Roles { get; set; }
public ObjectSet<User> Users { get; set; }
public TestDBEntity()
: base("name=TestDBEntities", "TestDBEntities")
{
ContextOptions.LazyLoadingEnabled = true;
this.Roles = CreateObjectSet<Role>();
this.Users = CreateObjectSet<User>();
}
}
【问题讨论】:
-
你能发布你的代码吗?也许 EDM 也是如此 - 它可以帮助发现问题。
标签: c# entity-framework poco