C# 检查数据库项的记录状态
我正在编写一个硬件清单应用程序。我通过WMI从计算机获取数据,并使用LINQ将其写入数据库 最终我得到了这样一张唱片:C# 检查数据库项的记录状态,c#,sql,sql-server,linq,C#,Sql,Sql Server,Linq,我正在编写一个硬件清单应用程序。我通过WMI从计算机获取数据,并使用LINQ将其写入数据库 最终我得到了这样一张唱片: ID主机名操作系统内存 1 myHostname Windows 7 4Gb 现在想象一下,我给这台计算机添加了一些内存,下次应用程序找到它时,它将更新来自这台计算机的信息,并尝试将其写入数据库 在编写之前,我检查数据库中是否已经存在我的主机名(它是主键),在这种情况下,它已经存在。那么现在,我是否要查询数据库中的这个主机名,获取这台计算机的所有信息,用它创建一个对象,并将它
ID主机名操作系统内存
1 myHostname Windows 7 4Gb
现在想象一下,我给这台计算机添加了一些内存,下次应用程序找到它时,它将更新来自这台计算机的信息,并尝试将其写入数据库
在编写之前,我检查数据库中是否已经存在我的主机名(它是主键),在这种情况下,它已经存在。那么现在,我是否要查询数据库中的这个主机名,获取这台计算机的所有信息,用它创建一个对象,并将它与我从WMI获得的对象进行比较
是否有任何方法可以基于每个记录信息在我的表上创建一个值,然后让LINQ基于WMI对象创建一个值并相互比较
抱歉,如果文本有点混乱,希望你们能帮我解决这个问题。试试这样的方法
var entry = yourContext.YourTable.SingleOrDefault(e => e.HostName == someHostName);
您只需要查询WMI\u对象。主机名==主机名
这使得代码类似于:
Dataobject obj = (select o from entity.objects where o.hostname == WMI_object.hostname);
obj.memory = WMI_object.memory;
entity.SaveChanges();
我真的不知道你到底在问什么,但我认为答案是这样的:“在这个用例中,通常会编写一个名为insertORupdate的存储过程来执行适当的操作。”是的,你的问题有点让人困惑。首先看一看实体框架代码,它可能会帮助您解决问题: