您的位置:首页 > 编程语言

这问题搞了我一下午啊,都怪vs2012,Entity Framework不能自动生成代码的原因!

2014-03-17 18:01 344 查看
这阵子做项目,重新拾起Silverlight。正好前一阵子装系统,果断就把VS2012装了上去,不想这回就遇到了问题。

我创建的项目是Silverlight Business Application,Silverlight版本5,自带WCF RIA。既然用的也是没啥新意的SQL Server,那就顺带用上Entity Framework做ORM吧。

以上这些都没啥难度。我先创建的数据库表,然后创建ADO.Net 实体模型。下一步自然是添加新的域服务(Domain Service),然后关联到刚才创建的实体模型。

不幸在这儿卡主了:



可用的上下文类一个都木有,并且有提示说“有些Entity Framework上下文类可能已被排除”!

当然啦,这种问题难不倒我,谷歌了半天,终于有结果了。


原因

在VS2012中,Entity Framework缺省地基于DbContext创建上下文类(这个词好别扭),然而WCF RIA不支持它。


解决方法

这个我就直接翻译下哈:

为了解决这个问题,你必须把它转成一个基于ObjectContext的模型。按下面的步骤做就行了:

1、在设计器中打开你的实体模型(如有必要,点一下设计器中空白的地方,保证没有对象处于选中状态)。

2、在属性窗口中,更改代码生成策略,从改到默认



3、删除那两个.tt文件。这里假设从创建实体模型以来,你没有修改这些文件。如果你有修改过,那么这些修改将会丢失。



4、重新生成项目。

现在,问题解决了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: