我想實現一個通用的存儲庫模式,在IEnumerable中實現通用項目的CRUD操作。我遇到了一般性查找可能已經在IEnumerable中的項目的問題。我需要以編程方式傳遞哪些屬性組成'key'或不同的記錄,然後使用LINQ對定義的屬性執行Enumerable.Any(),以便它可以查看對象是否已經存在於IEnumberable中。這是我的代碼到目前爲止。一般找到項目屬性值相等的任何項目使用LINQ
//Generic Method
public void AddItem(TEntity item)
{
var entities = GetAllItems().ToList(); //Method gets cached IEnumerable<TEntity>
if(true)//Generically see if TEntity is already in the list based of defined properties
{
entities.Add(item);
}
}
//Same function but non-generic
private void AddItem(MyObject object)
{
var objects = GetAllItems().ToList(); //Method gets cached IEnumerable<MyObject>
if(!objects.Any(a=> a.ID == MyObject.ID))
{
objects.Add(object);
_cache.AddReplaceCache(objects);
}
}
注:該鍵可以在對象上的任何屬性或屬性MYOBJECT
好像這應該是一個檢查執行上面這一層,你會用你的功能。我只是讓重複鍵的問題在數據庫級失敗,因爲它不應該到達版本庫。然後再次我不會使用通用的存儲庫。 –