繁体   English   中英

使用C#和Entity Framework将ntext更改为nvarchar

[英]Changing ntext to nvarchar using C# and Entity Framework

我必须添加排序到SQL Server中创建的现有数据库。 问题是该数据库包含LinQ的OrderBy方法不支持的ntext列。 数据库是用代码优先的方法编写的,所以我可以访问数据库模板,但我无法查看在服务器上运行的现成数据库。

我试图改变标记为的字符串类型属性

[Column(TypeName = "nvarchar(MAX)")]

但后来我得到了

Sequence不包含匹配元素

我不知道如何解决的异常。

这是我想对数据进行排序的方式(我在下面的说明中得到了例外:

MyDatabase.MyTable.OrderBy(x => x.MyRow).Load();

在我将TypeName更改为nvarchar之前,我遇到了这个错误:

ORDER BY子句中不能使用大对象(ntext和image)

有人可以帮我解决问题,以便从数据库中对数据进行排序吗?

我会感激任何帮助。 提前致谢!

在T-SQL中您可以通过多种方式解决这个问题,也可以为您采用其中一种方法吗?

  1. ORDER BY(将MyTextCol转换为nvarchar(max))

  2. 从该表创建一个视图,该字段的输出为nvarchar(max),并使用它代替您的表(即使将来)

  3. ALTER TABLE myTable ALTER COLUMN myTextCol nvarchar(max)最后一个解决了你的问题并且没有时间做:它只是一个元数据操作,没有任何东西会在你的表中为现有行重新组织

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM