簡體   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