我有以下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是什么。
答案 0 :(得分:2)
重新使用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
答案 1 :(得分:0)
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