首页 > 代码库 > VS2012在添加域服务时找不到EF的问题

VS2012在添加域服务时找不到EF的问题

我创建的项目是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、重新生成项目。

现在,问题解决了。

VS2012在添加域服务时找不到EF的问题