【发布时间】:2015-03-11 21:01:49
【问题描述】:
所以我正在 EntityFramework 中寻找一种方法来对 TEXT Sql 字段进行字符串比较。
我看到的这个问题的每个解决方案都告诉他们将数据库字段从 TEXT 切换到 nvarchar,这是我做不到的。
此代码可能看起来令人生畏,但除了指定的行之外,所有这些都有效
var TitlesData = Mod.Titles.AsNoTracking().Where(t => !t.isTrackedMMS )
.Select(t => new
{
MK3ID = t.ID,
ExtTitleID = t.ExtTitleID,
CompletedSteps = new List<bool> {
true,
(t.TitleClasses.Any() || t.TitleToSearsTaxonomies.Any()),
(t.MediaDetailsStorages.Any(m => m.FK_StoreName == 2 || m.FK_StoreName == 3)),
(t.MediaDetails.FirstOrDefault().MasterDelivered.HasValue),
(t.MediaDetails.FirstOrDefault().MasterReceived.HasValue),
(t.MediaDetails.FirstOrDefault().Datecaptured.HasValue),
(t.MediaDetails.FirstOrDefault().DVDCreated.HasValue || !t.MediaDetails.FirstOrDefault().CreateDVD),
//This Line Throws an Error
(t.FullDescriptionHTML != ""),
}.Where(b => b).Count(),
SkipCollections = (t.ProductsToTitles.Any() || t.RoyaltyContract.ProductsToContracts.Any()),
SkipSegments = t.ByPassSegment.HasValue ? t.ByPassSegment.Value : false,
SkipEcom = t.Items.All(i => i.BlockFromSale.HasValue ? i.BlockFromSale.Value : false),
SentTrackingItems = t.SentTrackingEmails.Select(e => e.TrackingActionID).ToList()
}).ToList();
有谁知道在 FullDescription html 字段上进行字符串比较的方法
谢谢
【问题讨论】:
-
使用存储功能?
-
如果你把线路改为
t.FullDescriptionHTML != null,这样就够了吗? -
这是数据库中的问题,而不是您的应用程序中的问题;
Text被视为大对象数据,不可索引/可搜索。它也在贬值,不建议在新的开发工作中使用。作为@AnnL。声明,您可以检查值是否存在,但不能检查内容是否相等。 -
ntext、text和image数据类型将在 SQL Server 的未来版本中删除。避免在新的开发工作中使用这些数据类型,并计划修改当前使用它们的应用程序。请改用nvarchar(max)、varchar(max)和varbinary(max)。 See details here -
我试图检查空值,但条目被提交为空白,因此检查空值不起作用
标签: c# sql entity-framework