我的问题的答案应该很明显,但我找不到。我有一个edmx文件,它只有一个表。有一个类型为string的字段。EF总是为此生成nvarchar (这是一种预期的),但是对于这个字段,ntext I需要一个而不是 nvarchar,因为对于我来说,4000太小了。
那么告诉我,告诉EF生成ntext 字段的正确方法是什么?
使用实体框架4的PS,SQL CE 3.5
发布于 2011-05-27 10:39:20
我想你是先用模特的,不是吗?您可以简单地为SQL生成创建自定义的T4模板,并包含逻辑,当字段定义为最大大小时,逻辑将使用NTEXT。
默认模板打开:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\DBGen\SSDLToSQL10.tt只需复制此模板并找到创建数据类型的逻辑。一旦有了模板,就可以将模型属性中的DDL生成模板(在设计器中)更改为修改后的版本。
带有生成模板的There is much more you can do,因为您可以向模型(XML)添加一些注释,并在中将它们用于自定义逻辑。
发布于 2013-08-22 15:33:30
只需将设计器中的属性"MaxLength“设置为"Max”即可。这将在SQL中生成一个ntext字段。
发布于 2012-03-22 12:26:17
如果您的项目包含ADO.Net实体数据模型(.edmx),则请参见Ladislav's excellent answer。
但是,如果您使用的是代码优先的库,并且您的项目不包含.edmx,那么您可以使用System.ComponentModel.DataAnnotations.ColumnAttribute来指定列类型:
using System.ComponentModel.DataAnnotations;
public class Note {
[Column("Note", TypeName="ntext")]
public string Note { get; set; }
}https://stackoverflow.com/questions/6150525
复制相似问题