我有一个模型在我的
EntityFrameworkCore 2.0
解决方案。班级布局如下;
public class Trader : AuditableEntity
{
public string Name { get; set; }
public string Telephone { get; set; }
public string Email { get; set; }
/*REMOVED FOR BREVITY*/
public ApplicationUser AccountManager { get; set; }
}
在哪里?
ApplicationUser
正在执行
IdentityUser
;
public class ApplicationUser : IdentityUser<int>, IEntity
现在我想要更新
AccountManager
当交易者定期被传阅时。
为此,我有以下服务方法(简化为简洁);
var trader = context.Find<Trader>(traderId);
var user = await userContext.FindByIdAsync(userId.ToString());
trader.User = user;
context.Save(trader, userName);
如果我试着这样做,我会犯错;
system.data.sqlclient.sqlexception:当identity_insert设置为off时,无法为表“aspnetusers”中的identity列插入显式值。
这意味着它正试图向users表插入一个新用户。现在上面的用户已经存在。据我所知,如果一个有效的id被传递到实体中,实体框架只会创建关系?如果发送过来的复杂对象的子实体值为空,则会插入一个新的对象吗?
我可以添加一个额外的字段;
public int UserId { get; set; }
将这个设置为类中applicationuser的fk,但我希望保持类最小?这是可能的,还是唯一的方法?(或者我可以用流利的对话来设定一些东西吗?