Gra*_*ush 0 sql-server entity-framework sql-server-2008 entity-framework-4
当我在使用文本字段的表上工作时,我遇到了错误.
如果我得到varchar列的长度,我可以做
var result = (from t in context.tablename select t.fullname.Length)
但是,如果我在文本字段上运行相同的查询:
var result = (from t in context.tablename select t.biography.Length)
我收到错误:
Argument data type text is invalid for argument 1 of len function.
我已经完成了一些关于这个主题的阅读,我理解为什么SQL Server会引发这个错误,但我不确定它的最佳方法.我知道我可以返回结果,然后得到结果字符串的长度,但肯定有一种更简单的方法吗?
我认为您最好的选择是将列数据类型更新为VARCHAR(MAX)是否TEXT或NVARCHAR(MAX)如果是NTEXT.有很多关于如何执行此操作的资源,但通常您创建一个新列,[N]VARCHAR(MAX)然后将所有数据更新到新列中,然后删除旧列,最后将新列重命名为旧列.
如果您无法更改表模式,那么您将需要view在该视图的选择中创建并执行类型转换..但是您可能刚刚更改了上面提到的列数据类型(除非您'不是数据库所有者,您在另一个数据库中创建视图).但请注意,EF并不总是像对待桌子一样对视图有好处.