c# – 错误:LINQ to Entities无法识别DataLength方法
发布时间:2020-12-15 04:28:31 所属栏目:百科 来源:网络整理
导读:我在这里有一个简单的问题. 首先使用EF6模型. var db = new MyEntities(GetEntityConnectionString());ObjectContext objectContext = ((IObjectContextAdapter)db).ObjectContext;ObjectSetDOCUMENT objectSet = objectContext.CreateObjectSetDOCUMENT();v
我在这里有一个简单的问题.
首先使用EF6模型. var db = new MyEntities(GetEntityConnectionString()); ObjectContext objectContext = ((IObjectContextAdapter)db).ObjectContext; ObjectSet<DOCUMENT> objectSet = objectContext.CreateObjectSet<DOCUMENT>(); var results = objectSet.Where("SqlServer.DATALENGTH(it.BINARYCONTENT)>50000"); Assert.IsTrue(results.ToList().Count == 9); var results2 = objectSet.Where(doc=>System.Data.Objects.SqlClient.SqlFunctions.DataLength( doc.BINARYCONTENT)>50000); Assert.IsTrue(results2.ToList().Count == 9); var results3 = db.DOCUMENTS.Where(doc => System.Data.Objects.SqlClient.SqlFunctions.DataLength(doc.BINARYCONTENT) > 50000); Assert.IsTrue(results3.ToList().Count == 9); 第一个断言成功,那么为什么在执行results2和result 3时会出现以下异常?
有没有办法让其他断言成功? 解决方法
事实证明,答案是我使用了错误的功能.
代替 System.Data.Objects.SqlClient.SqlFunctions.DataLength 我应该用 System.Data.Entity.SqlServer.SqlFunctions.DataLength 位于EntityFramework.SqlServer.dll中 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |