我希望能够使用Fluent API或数据注释来自动生成一个数据库迁移类,以便将字符串列作为
当使用Entity Framework v6、Code First和SQL Server Compact 4时,考虑到一个简单的C#类,例如:
ntext
而不是固定长度字符串进行处理。我该如何做?当使用Entity Framework v6、Code First和SQL Server Compact 4时,考虑到一个简单的C#类,例如:
public class GameFile
{
public string Id { get; set; }
public string FileData { get; set; }
public int FileSize { get; set; }
}
接下来,当添加一个新的迁移时:
add-migration first
生成的迁移类默认为最大长度为4000
的string
列。
CreateTable(
"dbo.GameFiles",
c => new
{
Id = c.String(nullable: false, maxLength: 4000),
FileData = c.String(maxLength: 4000),
FileSize = c.Int()
})
.PrimaryKey(t => t.Id);
当数据库通过 update-database
进行更新时,表中将会有一个名为FileData
的列,其类型为nvarchar(4000)
。
我尝试给FileData
属性添加一个MaxLength
和/或Column
特性,但生成的迁移代码没有变化。
[MaxLength, Column(TypeName = "ntext")]
public string FileData { get; set; }
我知道如果手动编辑迁移代码来明确声明 storeType
:
FileData = c.String(storeType: "ntext")
确保生成的表格被正确创建。