繁体   English   中英

根据Entity Framework上的其他列值设置列值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM