2010-05-15 50 views
4

我有一个视图,它有一个可为空的Int列(我们称之为StackOverflowCount)。从数据库生成EF模型时,EF设计人员不会将其识别为空,并将该列创建为Int。如何告诉Entity Framework视图中的某列可以为空?

我的问题是关于EF设计师,我已在列设置为可空,然后下面的错误杀死汇编;

Error 3031: Problem in mapping fragments starting at line 2327: 
Non-nullable column MyView.StackOverflowCount in table MyView 
is mapped to a nullable entity property. 

我可以避开这个由XML模式打开.edmx文件和手动编辑SQL列定义,但没有办法做到这一点使用设计和它被覆盖下一次我从刷新来自DB的模型。

这是“设计”或滑倒通过到EF 4.0的一些例子吗?我使用.NET 4.0与EF 4.0 VS下2010

+0

你有没有设法解决这个问题?我在VS2010上运行EF,并且遇到同样的问题。 – PedroC88 2012-02-20 11:33:25

+0

哦,是的,我需要重新创建视图。它对旧定义有约束力。 – 2012-02-20 12:52:57

+2

仅供将来参考。在我的情况下,删除视图并重新映射它并没有解决问题':s',但是将列定义从'fieldName'改为'NULLIF(fieldName,NULL)'做了诀窍。并不是说它看起来不错,但至少它有效。 – PedroC88 2012-02-21 00:05:47

回答

-1

在模型查看器中的实体选择列,选择属性,并设置可空为true。

相关问题