我在MVC Web应用程序中创建了一个存储库数据层,并希望将它用于我的CRUD方法。但我开始想到我想要做的事情:
If record does not exist
create record
else
update record
但这如何适合CRUD?这个二合一操作逻辑应该保存在控制器中吗?
答案 0 :(得分:2)
我认为存储库应该注意这一点,控制器应该尽可能轻:
在存储库级别:
public bool CreateUpdate(Type model)
{
var record = db.FirstOrDefault(x=> x.Id == model.Id);
if(record == null)
{
Create(model);
}
else
{
Update(model);
}
}
public bool Create(Type model)
{
//create logic here
}
public bool Update(Type model)
{
//update logic here
}
答案 1 :(得分:0)
可以使用此代码完成
var data = db.tableName.where(x=> x.Id == model.Id).FirstOrDefault();
if(data== null)
{
db.FAQCategories.Add(model);
db.SaveChanges();
}
else
{
db.Entry(model).State = EntityState.Modified;
db.SaveChanges();
}