我一直在将实体框架与自我跟踪实体代码生成模板结合使用,以用于我最新的Silverlight到WCF应用程序。这是我第一次在实际项目中使用实体框架,我希望能够在我的数据库模式发生变化时自动更新项目的整个数据访问层,从而节省自己大量的时间和精力。
我很高兴地发现,通过添加新表,更改列名,添加新列等来更新我的数据库模式,可以使用数据库更新选项将其传播到我的业务对象类在实体框架模型上。
我受伤的地方是我的WCF服务中的CRUD操作,以响应我的Silverlight客户端上的操作。我在Silverlight应用程序中使用相同的自我跟踪实体框架业务对象,但我发现我不得不在更新对象或更改跟踪器变得混淆状态时,不能正确处理外键关联等问题。 Silverlight端的对象和WCF层内的数据访问操作抛出一个摇摆不定。
现在我已经花了更多的时间处理这个怪癖而不是我之前的项目,我使用Linq-to-SQL作为滚动我自己的业务对象的起点。
仅仅是我无望还是自我跟踪实体接近应该避免的东西,直到它更成熟为止?
答案 0 :(得分:1)
您使用的是什么版本的自我跟踪实体?
我正在使用.Net 4.0版本和visual studio 2010.所有CRUD操作都可以正常工作,也可以使用FK。
我在使用FK的VS 2008中遇到了问题,但是在VS 2010中已经出现了.Net 4.0。
如果您愿意,我可以为您提供一些样品。
问候
答案 1 :(得分:0)
由于STE实体不支持延迟加载,因此您应该在服务器端使用Include包含相关属性。无法包含所有相关的导航属性。您必须明确包含属性。例如 //服务器端 customer.Include( “Orders.OrderDetails”)。包含( “地址”)