При попытке добавить новый объект в один из наборов DbSets я получаю следующее исключение:
Не удалось сохранить или принять изменения, поскольку несколько объектов типа 'xxxxxxx.DbMember' имеют одинаковыезначение первичного ключа.
Проблема возникает из-за того, что у меня есть некоторые пользовательские сопоставления между сущностями EF и моими сущностями BL.Вот фрагмент кода:
public partial class DbMember
{
//Member Properties
}
public partial class User
{
}
public partial class DbMember
{
public static implicit operator DbMember(User user)
{
var member = new DbMember();
//Map values
return member;
}
public static explicit operator User(DbMember member)
{
User user = new User();
return user;
}
}
public class UserService
{
public User GetUser(string userName){ //returns dbMember object }
}
public class AnotherService
{
public void Add(string userName,string desc)
{
var user = new UserService(_context).GetUser(userName);
var qb = new SomeOtherObject
{
User = user, Desc = desc
};
_dbSetOtherObject.Add(qb);
_context.DbMembers.Attach(qb.User);
_context.SaveChanges();
}
}
Есть предложения, в которых я могу ошибаться?