我正在尝试使用以下体系结构的Silverlight MVVM(使用MEF)应用程序:我有一个n层的Silverlight解决方案。其中一个项目是一个包含我的实体数据模型对象的.NET项目。我们称这个项目为MySqlData实体框架生成的代码链接Silverlight项目不包括功能导入
我成功地从现有数据库生成代码。
从MySQLData EDMX模型浏览器,我添加一个存储过程使用一个函数导入,也创建一个复杂的类型。
我添加代码生成项目到项目,并最终与MySqlData.tt和MySqlData.Context.tt
我的新功能导入和复合型成功出现在MySqlData.tt和MySqlData.Context.tt (我很高兴!)
我还将WCF RIA域服务类添加到MySqlData项目,因为我正在使用Silverlight应用程序。
在相同的解决方案下,我转到名为MyInfrastructure的Silverlight项目,然后单击属性。在Silverlight构建选项下的WCF RIA Service Link选项中,我选择我的MySqlData项目。
当我构建MyInfrastructure项目时,可以看到生成的类MySqlData.g.cs。
现在,这里的问题(感谢您的耐心):生成的代码MySqlData.g.cs没有我的新功能导入,并在MySqlData项目中创建新的复杂类型的任何引用。事实上,域服务类没有显示任何对新复杂类型的引用,因此它不会生成MyInfrastructure项目的预期代码。我尝试了除复杂类型之外的其他东西,比如说一个只返回一个字符串的存储过程。仍然没有好处。我也尝试创建一个部分的DomainService类,并没有很好的结果。
我能做些什么来强制导入等功能,以显示在另一个项目中生成的代码。我希望不必采取手动干预来使这些事情发生,否则每次通过自定义工具重新生成代码时,我都必须手动执行某些操作。
我使用Visual Studio 2010和Entity Framework 4.3.1
谢谢您的帮助。
我发现了我的问题的解决方案: – user1309226