实体框架通过中间层

时间:2009-12-17 17:49:39

标签: c# wcf entity-framework n-tier-architecture

好的,这个可能没有直接的答案,但让我们看看。

我正在尝试设计一个DAL,它将位于网络上,并为正在编写需要使用我们数据库的客户端的开发人员提供EF对象。

例如:

DAL有一些名为PERSON和DEPARTMENT的EF对象。

开发人员希望编写一个可以使用WCF引用DAL的客户端,并向他公开了代理上下文和EF对象,以便他可以在设计时执行正常查看的LINQ查询。在运行时,此查询将传递给实际执行它的DAL,并将结果对象传递回客户端

        var query = from c in DALReference.PERSON
                    where c.FISTNAME == "FRED"
                    select c;

        foreach ( PERSON p in query)
        {
            lstItems.Items.Add(p.FIRSTNAME);   
        }

现在我已经阅读了很多关于EF v1如何不够成熟yada yada yada的内容。那不适合我。我需要为一个大型项目编写解决方案,这个项目最迟必须在明年9月到期,所以我不能等待v2或.NET 4

我也读到了关于POCO和坚持无知的说法,说实话,这一切都是如此分散,我正在努力解决它。

所以,任何人都希望提供一些易于理解的示例,指南或建议如何实现这一目标?

噢,是最后一块拼图。我需要通过TCP而不是HTTP进行通信。

谢谢!

3 个答案:

答案 0 :(得分:1)

您是否查看过ADO.NET数据服务或RIA服务?两者都会以略微不同的方式或多或少地做你想要的。除非我真的迫切需要,否则我会从其中一个开始。

答案 1 :(得分:1)

您将不得不使用RIA服务或类似的东西:http://code.msdn.microsoft.com/exprserialization通过网络将表达式树发送到您的数据存储区。

修改

希望补充一点,EF4现在工作得非常好,它在处理分离的实体方面肯定更好,例如穿过电线并与上下文脱节的对象。

这篇文章可能会有所帮助: http://msdn.microsoft.com/en-us/magazine/ee335715.aspx

答案 2 :(得分:0)

您可能有兴趣使用在服务器端使用Entity Framework的开源N-Tier Entity Framework并生成整个基础架构,用于构建基于WCF的n层架构,包括客户端的类似EF的API 。