【发布时间】:2017-02-01 22:42:49
【问题描述】:
我在 Azure 上学习 Entity Framework,ID 字段必须是 nvarchar(255)。当我附加到数据库以获取模型时,它会将 ID 字段作为类型字符串拉下,这在插入新记录时给我带来了问题。解决方案是将类型字符串切换为类型 Guid。然后我可以提交一条新记录,“默认”sql 值将生成新的 Guid。
但是,在我完成模型并将 id 从字符串重置为 Guid 后,我收到以下消息,这对我来说没有多大意义:
错误 2019:指定的成员映射无效。 'LearnModel.AdminList' 类型中成员 'id' 的类型 'Edm.Guid[Nullable=False,DefaultValue=]' 与 'SqlServer.nvarchar[Nullable=False,DefaultValue=,MaxLength=255,Unicode=True 不兼容'LearnModel.Store.AdminList' 类型中成员 'id' 的 ,FixedLength=False]'
我认为可能是 Unicode=true 给了我这个问题,但我没有看到可以在 VS 的模型中设置的任何地方。我发现另一篇文章提到进入并编辑 edmx 以添加 Unicode=true 但这会在下次验证模型时被覆盖。
有人知道我在这里遇到了什么吗?
【问题讨论】:
-
如果您使用的是 EDMX,请尝试将
id列类型更改为 'uniqueidentifier',然后重建模型(可能需要删除并重新添加 EDMX 文件以生成正确的数据类型)。跨度> -
如果可以的话,我会接受这个作为答案!无论如何,这不是一项快速的工作......我还必须删除模型并按照您所说的重新创建它。感谢您的帮助。
标签: c# entity-framework