0

我正在编写一个硬件清单应用程序。我通过 WMI 从计算机获取数据并使用 LINQ 将其写入数据库。

最终我得到了这样的记录:

ID  HOSTNAME    OS         Memory   
 1  myHostname  Windows 7  4Gb

现在想象一下,我在这台计算机上添加了一些内存,下次应用程序找到它时,它将更新这台计算机的信息并尝试将其写入数据库。

在写作之前,我检查 myHostname是否已经存在于数据库中(它是Primary Key),在这种情况下它已经存在。那么现在,我是否要在数据库中查询此主机名并获取我拥有的这台计算机的所有信息并用它创建一个对象并将其与我从 WMI 获得的对象进行比较?

有没有办法根据每个记录信息在我的表上创建一个值,然后让 LINQ 基于 WMI 对象创建一个值并相互比较?

抱歉,如果文字有点混乱,希望你们能帮助我解决这个问题。

4

2 回答 2

1

尝试这样的事情。

var entry = yourContext.YourTable.SingleOrDefault(e => e.HostName == someHostName);
于 2013-10-07T16:35:39.303 回答
0

你只需要查询WMI_object.hostname == hostname

这使得代码类似于:

Dataobject obj = (select o from entity.objects where o.hostname == WMI_object.hostname);
obj.memory = WMI_object.memory;
entity.SaveChanges();
于 2013-10-07T16:35:59.477 回答