【发布时间】:2016-08-16 14:21:33
【问题描述】:
在我们的 C# 应用程序中,我们需要比较 GUID,在数据库中它是大写的,但假设在代码中它是小写的。
我知道我们可以通过 string.Compare 或 string.Equals 来处理这个问题,但我想了解以下情况。
var myInstanceId ='GUID';
下面的线做完美的比较,
var applicationSettings = db.ApplicationSettingsSet
.Where(x => x.myInstanceId == myInstanceId).ToList();
可能是由于 db.ApplicationSettingsSet 是 EF DB 实体
public DbSet<ApplicationSetting> ApplicationSettingSet { get; set; }
但不知何故,下面的代码在哪里不起作用
applicationSettingCategory.ApplicationSettings = applicationSettings
.Where(x => x.myInstanceId == myInstanceId );
可能是因为现在比较发生在 ApplicationSettings 的 LIST 而不是 DBSet 上。
这种行为的真正原因是什么?
【问题讨论】:
-
KcsInstanceId的数据类型是什么,是GUID吗? -
可能您的数据服务器不区分大小写。如果您使用的是 Sql Server,那就是问题所在。
-
只要都是
Guid类型,就不用担心数据转换了 -
@Habib 是的,但我们将其转换为字符串
-
@Kcsss,所以在 EF6 查询中,您正在比较 Guid,而在另一个查询中,您正在比较字符串?
标签: c# asp.net .net entity-framework c#-4.0