gpt4 book ai didi

c# - Linq To SQL - 高效处理对象 - 检索第一个/单个对象

转载 作者:搜寻专家 更新时间:2023-10-30 20:19:29 24 4
gpt4 key购买 nike

过去几周我一直在使用 LinqToSql,我喜欢它,这里的社区很棒。

我创建了一个查询来在数据库中查找一个对象并更新值,它似乎工作正常,但代码对我来说看起来不自然,我认为有更好的解决方案。

请查看下面的代码;

        //Return a list of MyObject items
// irrelevant line, just to show what the objects are
List<MyObject> items = Factory.GetObjects();

foreach (var item in items)
{
var myObjects= from myobj in db.MyOjects
where myobj.id == item.Key
select myobj;

//Should ONLY find 1 object
//Below is the code I think we could optimize
if (myObjects.Count() == 1)
{
myObjects.First().propertyToChange1 = item.p1;
myObjects.First().propertyToChange2 = item.p2;
myObjects.First().dateAltered = DateTime.Now;

//Update DB
db.SubmitChanges();
}





}

最佳答案

更好的解决方案是使用 SingleOrDefault,如下所示:

var myObject = db.MyOjects.SingleOrDefault(myobj => myobj.id == item.Key);
if (myObject != null) {
myObject.propertyToChange1 = item.p1;
myObject.propertyToChange2 = item.p2;
myObject.dateAltered = DateTime.Now;
//Update DB
db.SubmitChanges();
}

关于c# - Linq To SQL - 高效处理对象 - 检索第一个/单个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13328431/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com