实体框架填充了我的文本字段,尽管它们不是固定长度

时间:2012-04-03 15:57:12

标签: asp.net-mvc-3 entity-framework c#-4.0

我正在使用Entity Framework 4构建MVC3站点,我遇到了固定长度字段的问题。

当我在调试期间查看我的代码时,它显示MyEntity.Title="Hello name "标题填充到字段的最大长度。

这通常是在EDMX文件中使用固定字段长度或在底层数据库上使用char数据类型而不是varchar.的问题。在这种情况下,这些都不正确,但是原来问题字段可能是的固定长度。我已经手动更改了EDMX中的每个字段(并且模型已经重新生成),并且字段在数据库中从未固定长度(这是应用程序的起点)所以我想填充字段的需要是存储在Entity Framework配置中的某个位置,尚未更新。

当新记录添加到数据库时会出现问题 - 当创建对象时,标题将是正确的,当它从数据库实例化时会被填充。

为了摆脱填充,我需要做些什么,除非我修剪所有东西,否则这实际上会搞砸我的字符串比较?

3 个答案:

答案 0 :(得分:4)

事实证明,在.EDMX文件中,填充文件仍然列为nchar。通过模型编辑器无法看到这一点,更改它的唯一方法是在Visual Studio中右键单击模型并选择“打开方式...”然后使用XML编辑器。违规字段看起来像这样:

<Property Name="MyProperty" Type="nchar" Nullable="false" MaxLength="50" />

Type更改为nvarchar并再次运行模板似乎可以解决问题。

答案 1 :(得分:2)

从数据库更新现有字段时,不会在模型中更新现有字段。您必须从模型中删除实体,或手动将这些字段更改为新值。

检查模型浏览器中的属性类型,确保它们正确无误。

答案 2 :(得分:0)

更改“标题”字段,使“固定长度”属性设置为“true”。它可能默认为没有:)

确保先在dbase中进行更改,然后更新edmx。