1

我一直在将实体框架与自我跟踪实体代码生成模板结合使用,用于我最新的 silverlight to WCF 应用程序。这是我第一次在实际项目中使用实体框架,我希望能够在我的数据库模式发生变化时自动更新项目的整个数据访问层,从而为自己节省大量时间和精力。

令人高兴的是,我发现通过添加新表、更改列名、添加新列等来更新我的数据库模式可以通过使用实体上的数据库更新选项传播到我的业务对象类框架模型。

我受伤的地方是我的 WCF 服务中的 CRUD 操作,以响应我的 Silverlight 客户端上的操作。我在我的 Silverlight 应用程序中使用相同的自我跟踪实体框架业务对象,但我发现我不断地不得不解决诸如在更新对象时未正确处理外键关联或更改跟踪器对某个状态的状态感到困惑的问题Silverlight 端的对象和 WCF 层内的数据访问操作引发了不稳定。

与以前的项目相比,我现在花更多的时间来处理这些怪癖,在以前的项目中,我使用 Linq-to-SQL 作为滚动我自己的业务对象的起点。

只是我绝望,还是自我跟踪实体接近一些应该避免的东西,直到它更成熟?

4

2 回答 2

1

您使用的是什么版本的自我跟踪实体?

我将 .Net 4.0 版本与 Visual Studio 2010 一起使用。所有 CRUD 操作都可以正常工作,也可以与 FK 一起使用。

我在使用 FK 的 VS 2008 中遇到了问题,但在使用 .Net 4.0 的 VS 2010 中就没有了。

如果你愿意,我可以给你一些样品。

问候

于 2010-06-05T18:43:18.230 回答
0

由于 STE 实体不支持延迟加载,因此您应该在服务器端使用 Include 包含相关属性。无法包含所有相关的导航属性。您必须明确包含这些属性。例如 //服务器端 customer.Include("Orders.OrderDetails").Include("Address")

于 2010-07-06T17:02:13.217 回答