[英]Set a column value based on other column value on Entity Framework
我有一个表包含名为Id(IDENTITY(1,1))和OriginalId的2列
当我们新添加一个实体时,OriginalId始终等于Id
为此,我必须编写此愚蠢的代码
MyClass obj = new MyClass()
_repo.Add(obj);
obj.OriginalId = obj.Id;
_repo.Update(obj)
这需要两次写入数据库。 有什么办法让它只写一次,只有OriginalId = Id Regards,
如果您的obj.id
是自动递增的,则只需尝试在_repo
获取最新的id
, _repo
再将新的obj
添加到存储库即可。 做这样的事情:
MyClass obj = new MyClass();
var latestId = _repo.GetLatestId();
obj.OriginalId = ++latestId;
_repo.Add(obj);
但是,如果您不想两次访问存储库,则需要更改表方案。 您的id
不能自动递增,您需要自己生成id
,或者可以使用Guid.NewGuid方法生成唯一id
。 在这种情况下,请尝试以下操作:
MyClass obj = new MyClass();
obj.id = Guid.NewGuid();
obj.OriginalId = obj.id;
_repo.Add(obj);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.