猿问

c#从存在或创建的查询中获取信息

我有以下 LINQ 查询:


var sysExist = db.Systems.FirstOrDefault(s => s.Name == name && 

s.OrganizationID == 4);


if (sysExist == null)

{

   var sys = db.Systems.Add(new Systems()

   {

      Name = name,

      OrganizationID = 4,

      Online = true,

      SerialNumber = "1zz34343" 

   });


   db.Systems.Add(sys);

   db.SaveChanges();

}

如果记录存在,我需要从 sysExist 获取 ID 字段。如果记录不存在,我需要获取添加的记录的 ID 字段 (sys)。想知道有没有更有效的方法来做到这一点,而不是查看两个变量以查看 ID 是什么。


动漫人物
浏览 121回答 2
2回答

幕布斯6054654

重用sysExist而不是创建一个新的sys:var sysExist = db.Systems.FirstOrDefault(s => s.Name == name && s.OrganizationID == 4);if (sysExist  == null){   sysExist = new Systems()   {     Name = name,     OrganizationID = 4,     Online = true,     SerialNumber = "1zz34343"    };   db.Systems.Add(sysExist);   db.SaveChanges();}// now sysExist contains old or new record

慕森卡

var sys = db.Systems.FirstOrDefault(s => s.Name == name && s.OrganizationID == 4);if (sys  == null){   sys = new Systems()   {     Name = name,     OrganizationID = 4,     Online = true,     SerialNumber = "1zz34343"    };   db.Systems.Add(sys);   db.SaveChanges();然后sys在需要获取ID的地方使用
随时随地看视频慕课网APP
我要回答