当前位置: 首页 > 编程语言 > C#

entityframeworkself-trackingentitiesarenotrecommendedbyMicrosoftShare

时间:2023-04-10 20:48:09 C#

entityframeworkself-trackingentitiesarenotrecommendedbyMicrosoft在看微软的网站时,发现他们不再推荐使用self-trackingentities了。下面的每个链接都是一个提到不使用STE的MS资源:有谁知道为什么Microsoft不再建议使用STE?(注意:由于我不为MS工作,所以这都是基于他们的公开声明和过去历史的推测)。您发布的第一篇文章“有点”解释了原因,尽管不是很清楚:他们希望您使用更好的替代方案,无意修复或改进STE。Microsoft正在将STE置于“早期失败的实验”中,类似于RDO或Remoting或LINQ2SQL-他们声称要看看它的工作情况,但事实并非如此。总的来说,微软一直承认STE是解决实际业务问题的第一步,但它们显然是不完整的。特别是,它们在将对象图附加到共享实体方面很糟糕,它们不支持延迟加载,并且还有许多其他限制。MS显然已经决定他们不会尝试清理它们(注意他们也出于类似原因弃用了POCO模板)。由于他们不打算修复或改进模板,他们希望人们停止将它用于新项目并转向更好的替代方案:MSDN数据库DbContext生成器该模板将生成简单的POCO实体类和从DbContext派生的上下文。这是推荐的模板,除非您有理由使用下面列出的其他模板之一。STE主要用于支持实体断开连接并重新连接到其上下文的情况,尤其是在WCF或Web服务等序列化场景中。在“标准”实体框架对象中,所有更改跟踪都在上下文中完成,将现有实体附加到上下文是有问题的。STE使这个过程更容易,但代价是几乎所有其他事情都变得困难。根据我在DbContext上的所见所闻,它应该是解决这个问题的更好选择,尽管它实际上并没有复制STE所做的事情。EF重度用户之间的普遍共识似乎是序列化端到端EF实体是一个非常糟糕的主意。相反,您应该使用DTO和类似AutoMapper的东西在DTO和EF对象之间进行映射。我创建了可跟踪实体来替代STE:https://trackable.codeplex.com。它作为一组NuGet包和VisualStudio扩展进行部署。有一组项目模板,包括用于ASP.NETWebAPI脚手架的T4模板和用于生成WCF服务的项目模板。这是我写的一篇比较TE和STE的博文:http://blog.tonysneed.com/2013/11/18/trackable-entities-versus-self-tracking-entities。Cheers,TonySneed以上就是C#学习教程:实体框架自追踪实体的内容,并不是微软推荐分享的全部内容。不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:

最新推荐
猜你喜欢