如果我有一個物件如下:
var example = new Example
{
SomeName = viewModel.SomeName,
SomeTitle = viewModel.SomeTitle,
SomeAddress = viewModel.SomeAddress,
SomeCity = viewModel.SomeCity
};
_class.AddObject(example);
AddObject 方法使用存盤庫中的 Add 物體方法。視圖模型所基于的域已由物體框架 (6) 生成,首先是 DB。
我目前正在嘗試確保示例物件不能發布,除非它具有唯一的SomeName,SomeAddress和SomeCity. 如果資料庫中已經存在具有這三個欄位的相同組合的記錄,我將向用戶顯示一條錯誤訊息。
在物體框架中是否有內置的方法來做到這一點?由于域模型是自動生成的,我知道我不能在那里注釋屬性。我不確定在視圖模型中是否可以做一些事情,或者最好撰寫一些自定義邏輯。
謝謝您的幫助!
uj5u.com熱心網友回復:
在插入新記錄之前,您可以使用 LINQ 檢查資料庫中是否已存在暫存器。
為了使事情變得更容易并且不在記憶體中加載任何不需要的東西,您可以使用Any()沿 lambda 運算式的方法來查詢資料庫。true如果找到具有提供的過濾器的任何記錄,則此方法將回傳,否則將回傳false。
bool recordExists = _myContext.MyTable.Any(x => x.SomeName == viewModel.SomeName &&
x.SomeAddress == viewModel.SomeAddress &&
x.SomeCity == viewModel.SomeCity)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/410691.html
標籤:
上一篇:如何在字串中使用文本欄位小部件?
