更新实体框架模型

Owa*_*shi 24 c# linq-to-entities entity-framework visual-studio-2010 sql-server-2008

我刚开始使用EF并发现它很酷,但我遇到了一个问题,

问题:
我更改了表User中的列的数据库模式,之前是Varbinary(50)然后我将其更改为VarChar(50),然后在MyModel.edmx设计器中我选择了"从数据库更新模型",之后点击完成我收到此错误.

错误:

   Error 2019: Member Mapping specified is not valid.
    The type 'Edm.Binary [Nullable=False,DefaultValue=,MaxLength=100,FixedLength=False]' of member
   'Email' in type 'LearnDBModel.User' is not compatible with SqlServer.varchar 
    [Nullable=False,DefaultValue=, MaxLength=50,Unicode=False,FixedLength=False]' of member 'Email'
    in type 'LearnDBModel.Store.User'.

让我知道如何解决它

Sha*_*Wet 61

我之前遇到过类似的问题,并发现解决它的方法是从模型中删除表.保存并关闭模型.然后重新打开模型并重新添加表格.

  • 这是f**ked.我认为EF是行业标准.您可能需要做的另一个步骤是在重新添加之前构建项目. (8认同)

Chr*_*han 14

Shawn de Wet的解决方案工作正常但是如果您不想删除表(例如与其他表的关系......),您可以使用另一种解决方案:使用xml编辑器打开您的edmx文件,按Ctrl + F查找类似于

Property Name ="Email"Type ="Binary"Nullable ="false"MaxLength ="50"FixedLength ="false"

将其更新为:

Property Name ="Email"Type ="String"Nullable ="false"MaxLength ="50"Unicode ="false"FixedLength ="false"

保存并重建.