来自 entity framework 的 FirstOrDefault 中的 C# String.Compare
C# String.Compare in FirstOrDefault from entity framework
我正在失去它... =\
使用 .NET Framework 4
使用 entity framework 到达 MS SQL DB
(仅供参考 - 这是一些看起来很丑陋的代码。因为它用于本地服务,并且永远不会处理大于 ~1000 行的表 - 选择的工具集或多或少是可以接受的。)
运行下一个代码
var itemOfInterest = entity.tbl_Items
.FirstOrDefault(item =>
string.Compare(item.Name, SomeLocalItem.Name, true) == 0
&& (string.Compare(item.tbl_Server.FQDN, SomeLocalItem.ServerFQDN, true) == 0)
|| (string.Compare(item.Server.FQDN, WithoutDomainLocalFQDN, true) == 0)
);
它 returns 我是第一个(或空)项目,仅由
(string.Compare(item.tbl_Server.FQDN, SomeLocalItem.ServerFQDN, true) == 0)
|| (string.Compare(item.Server.FQDN, WithoutDomainLocalFQDN, true) == 0)
原因
当运行
var serviceOfInterest = entity.tbl_Service
.Where(item => string.Compare(item.Name, SomeLocalItem.Name, true) == 0)
.FirstOrDefault(item =>
(string.Compare(item.tbl_Server.FQDN, SomeLocalItem.ServerFQDN, true) == 0)
|| (string.Compare(item.Server.FQDN, WithoutDomainLocalFQDN, true) == 0)
);
我得到了正确的结果。
我感觉不舒服。可能这里的问题真的很简单,但我不能只看到它。
项目名称中比较的字符串看起来像这样:
"My Awesome Item - pen."
"My Awesome Item - Grand-pas gun"
"My Awesome Item - something in my pocket - for you"
感谢任何帮助。对于这样的问题,我什至可以骂我,但我真的真的很需要答案。
非常感谢。
试试这个,
var itemOfInterest = entity.tbl_Items.FirstOrDefault(item => string.Compare(item.Name, SomeLocalItem.Name, true) == 0 && ((string.Compare(item.tbl_Server.FQDN, SomeLocalItem.ServerFQDN, true) == 0) || (string.Compare(item.Server.FQDN, WithoutDomainLocalFQDN, true) == 0)));
我正在失去它... =\
使用 .NET Framework 4 使用 entity framework 到达 MS SQL DB
(仅供参考 - 这是一些看起来很丑陋的代码。因为它用于本地服务,并且永远不会处理大于 ~1000 行的表 - 选择的工具集或多或少是可以接受的。)
运行下一个代码
var itemOfInterest = entity.tbl_Items
.FirstOrDefault(item =>
string.Compare(item.Name, SomeLocalItem.Name, true) == 0
&& (string.Compare(item.tbl_Server.FQDN, SomeLocalItem.ServerFQDN, true) == 0)
|| (string.Compare(item.Server.FQDN, WithoutDomainLocalFQDN, true) == 0)
);
它 returns 我是第一个(或空)项目,仅由
(string.Compare(item.tbl_Server.FQDN, SomeLocalItem.ServerFQDN, true) == 0)
|| (string.Compare(item.Server.FQDN, WithoutDomainLocalFQDN, true) == 0)
原因
当运行
var serviceOfInterest = entity.tbl_Service
.Where(item => string.Compare(item.Name, SomeLocalItem.Name, true) == 0)
.FirstOrDefault(item =>
(string.Compare(item.tbl_Server.FQDN, SomeLocalItem.ServerFQDN, true) == 0)
|| (string.Compare(item.Server.FQDN, WithoutDomainLocalFQDN, true) == 0)
);
我得到了正确的结果。
我感觉不舒服。可能这里的问题真的很简单,但我不能只看到它。 项目名称中比较的字符串看起来像这样:
"My Awesome Item - pen."
"My Awesome Item - Grand-pas gun"
"My Awesome Item - something in my pocket - for you"
感谢任何帮助。对于这样的问题,我什至可以骂我,但我真的真的很需要答案。
非常感谢。
试试这个,
var itemOfInterest = entity.tbl_Items.FirstOrDefault(item => string.Compare(item.Name, SomeLocalItem.Name, true) == 0 && ((string.Compare(item.tbl_Server.FQDN, SomeLocalItem.ServerFQDN, true) == 0) || (string.Compare(item.Server.FQDN, WithoutDomainLocalFQDN, true) == 0)));