[英]The relationship between the two objects cannot be defined
我要在用户中添加和编辑项目。 我使用以下代码:
DataContext db = new DataContext();
private void Save()
{
User user = (SelectedUser == null) ? new User() : db.User.Find(SelectedUser.UserName);
user.FirstName = FirstName;
user.CcRowIndex = CcRowIndex;
user.Image = Image;
user.LastName = LastName;
user.OrganizationalPostId = OrganizationalPost;
user.OrganizationalUnitId = OrganizationalUnit;
user.Password = Password;
user.Signature = Signature;
user.SubsetUsers = SubsetUsersList;
user.UserName = UserName;
if (SelectedUser == null)
{
db.User.Add(user);
}
db.SaveChanges();
}
我添加了项目,但是在编辑项目时出现错误:
无法定义这两个对象之间的关系,因为它们被附加到不同的ObjectContext对象上。
这将有助于查看您的User
类的定义,但是,我可以猜测一下。
假设:
SubsetUsersList
属性是其他User
实例的集合 该SubsetUsersList
从您的另一个实例填充DbContext
。 当您尝试在DbContext
的新实例中使用这些实体时,EF会抱怨。
// SubsetUsersList populated by unknown DbContext instance
user.SubsetUsers = SubsetUsersList;
// db instance throws exception
db.SaveChanges();
一种替代方法是在当前db
实例中加载这些用户:
// Guessing at the definition of your User class
var subsetUserIds = SubsetUsersList.Select(u => u.UserId).ToArray();
user.SubsetUsers = db.User.Where(u => subsetUserIds.Contains(u.UserId).ToList();
这效率不高,但是应该可以帮助您了解此处的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.