我有2个项目
DAL
Main
在DAL
中,我创建了广告DataService
类,同时也生成了EF上下文类。如何隐藏自动生成的EF类无法从Main
项目访问?我想只能访问DataService
类。
我无法修改EF实体并将internal
修饰符放在那里,因为在更新上下文后它将被覆盖。
答案 0 :(得分:1)
将EF模型及其生成的类放在一个单独的项目中,从DAL项目中引用该项目,然后您可以从public class DataService
中选择公开的内容。
当然,如果您从EF模型公开实体,并且DataService是常规.NET类而不是WCF服务,那么您的客户端也需要引用EF项目......
如果你真的想隐藏客户端的实体,根本不允许客户端使用它们,你必须为客户端提供其他方式来读/写数据(比如你创建的DTO)在一个单独的项目或DAL项目中。)
答案 1 :(得分:1)
如果您尝试使实体不了解架构,请使用类似AutoMapper的内容或使用代码内配置而不是.edmx