我需要一些帮助。
我有一个包含2个项目的解决方案。 第一个项目包括一个Web服务,它提供了一些方法,如GetAllCustomers,GetCustomerByGUID等...... 它还包括edmx文件,因此这些“Get”方法会释放实体对象。
第二个项目 - 此时 - 是一个测试所有这些方法的控制台应用程序。 我通过网络服务接收我的对象,一切都很好,但是......
这是我的问题:
这些对象会错过每个导航属性。我的客户实体对象包含其中一些。 在Web服务项目中,导航属性就在那里。
另一件奇怪的事: 如果我在控制台中实例化EF DataContext,我就无法调用SaveChanges方法。它不在那里。我知道我不应该在这一层中有datacontext的对象,但是为了测试,我偶然发现了这一点。
有谁知道这个?
答案 0 :(得分:2)
您将很难按照自己设计的方式工作。请记住,一旦实体被序列化并通过网络发送,您将丢失与DataContext
相关联的所有信息。
此外,除非您明确包含对具有实体框架模型的程序集的引用并选择重用这些类型,否则您正在处理的类型只是.edmx
中实际模型的代表性克隆。 / p>
导航属性仅在实体附加到DataContext时才有意义,因为这样可以处理调用数据库和保护所请求实体的所有魔力。您实际上是从您的Web服务获得POCO,但您正在尝试使用它,就像它仍然附加到其上下文一样。
您要构建的是N-Tier应用程序,因此我建议您阅读how to do this with Entity Framework。