0
我在执行ASP.NET MVC项目下面的LINQ查询:只有参数构造函数初始化,并在LINQ的支持,以实体错误,而这样做的版本检查
Version baseVersion = new Version("1.0.0.0");
var v = (from a in db.table where new Version(a.version) > baseVersion select new { a.id, a.version, a.name}).ToList();
在执行这个我得到这个错误:
Only parameterless constructors and initializers are supported in LINQ to Entities
当我删除版本检查,并用这个查询:
var v = (from a in db.table select new { a.id, a.version, a.name}).ToList();
它成功执行。如何使版本条件的linq查询工作?
你的链接被编译成sql代码,并且sql不知道什么是'Version',所以这可能不会是你想要解决这个问题的方式 – AlexanderBrevig 2014-10-16 11:51:42
@AlexanderBrevig有没有其他方法? – Jaguar 2014-10-16 11:54:11
不幸的是我认为@Marten的建议是你唯一的选择。如果您的版本号不会超过一位小数(即最大值为9.9.9.9),那么您可以使用字符串比较并滥用SQL的自然比较。 '新的a.version>“1.0.0.0”' – AlexanderBrevig 2014-10-16 12:22:19