我希望将EntityFramework4模型(.edmx和.context.tt)放在名为 ModelLibrary 的类库中,并将代码生成实体包含在内。部分类(.tt)位于名为 EntitiesLibrary 的单独Silverlight类库中。
这样我希望与我的silverlight应用程序共享EntitiesLibrary以进行自我跟踪。为了在silverlight应用程序中使用这个项目,类库必须是一个Silverlight类库,我认为这是问题的开始。
在下一步中,我添加了一个Siverlight应用程序项目,并将其托管在一个新的ASP Web项目中。在ASP Web项目中,我添加了一个WCF服务以及对ModelLibrary和EntitiesLibrary的引用,并在那里创建了一些CRUD操作。
现在在Silverlight应用程序中,我向Wcf服务添加了一个服务引用,当它点击确定时它可以发现服务;我收到一条错误消息:
无法加载文件或程序集'System.Runtime.Serialization,Version = 2.0.5.0,Culture = neutral,PublicKeyToken = 7cec85d7bea7798e'或其依赖项之一。系统找不到指定的文件。
在Service.svc.cs上 - 虽然没有编译问题 - Resharper向我展示了操作中使用的实体的一些错误:
模块'系统,版本= 2.0.5.0,文化......'应该被引用。
???现在我完全卡住了。同样不寻常的是,在ModelLibrary的引用下,在指向EntitiesLibrary的ASP Web主机下,我看到了黄色标记。发生这种情况只是因为后者属于Silverlight类库。如果我有一个普通的类库,就不会发生这种情况。
如果有人给我建议会很好, 非常感谢 卡瓦
答案 0 :(得分:0)
我遵循了Jenny Lerman的“实体框架”一书,在单独的类库中创建了指向自动生成实体的链接。
正如我所怀疑的那样,如果我使用控制台应用程序而不是Silverlight并为我的实体提供一个普通的类库,它就可以正常工作。添加的Web服务引用可以与实体一起使用以创建代理。就像书中一样。
但是,如果类库的类型为Silverlight类库 - Silverlight程序集中的限制 - 指向CLR 4.0 Web服务的WCF服务引用由于库不匹配而无法以某种方式创建。
我已经停止深入研究这个问题,并且一直试图让RIA服务工作,这似乎比自我跟踪POCO更有希望。
然而,适当的n层基础设施问题仍有待发现。