EF数据类型varchar和text在等于运算符中不兼容

时间:2015-03-11 21:01:50

标签: c# sql entity-framework

所以我在EntityFramework中寻找一种在TEXT Sql Field上进行字符串比较的方法。

我看到这个问题的每个解决方案都告诉他们将数据库字段从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字段上进行字符串比较的方法

由于

1 个答案:

答案 0 :(得分:0)

听起来你没有对数据库的控制,那么如何将字段的长度比较为零而不是空字符串

(len(t.FullDescriptionHTML) > 0

或者比较null时检查是否存在。做这两件事可能是个好主意吗?