2010-11-11 85 views
1

我需要一些帮助。实体框架和Web服务

我有2个项目中的溶液。 第一个项目包括Web服务,它提供像GetAllCustomers一些方法,GetCustomerByGUID等.. 它还包括EDMX文件,所以这些“get”方法放弃实体对象。

第二个项目 - 在这个时刻 - 一个控制台应用程序测试所有这些方法。 我通过Web服务,万物细收到我的对象,但..

这里是我的问题:

这些对象放过每一个导航属性。我的客户实体对象有一些。 在Web服务项目中,导航属性在那里。

另一个奇怪的事情: 如果我instanciate在控制台中的EF DataContext,我不能调用SaveChanges方法。这只是不存在。我知道我不应该在这一层有datacontext的对象,但为了测试我偶然发现了这一点。

任何人都知道这件事吗?

回答

2

你将有困难的时候得到这个工作,你把它设计的方式。请记住,一旦实体被序列化并通过网络发送,您将丢失与DataContext相关联的所有信息。此外,除非您明确包含对实体框架模型的程序集引用并选择重用这些类型,否则您所处理的类型只是.edmx中实际模型的代表性克隆。

导航属性只有在实体连接到DataContext时才有意义,因为这是处理调用数据库和为要求的实体提供水合的所有魔法的。你实际上从你的web服务中获得了一个POCO,但是你试图使用它,就好像它仍然附着在它的上下文中一样。

你正在尝试建立是一个N层应用程序,所以我建议在how to do this with Entity Framework读了。