C# Microsoft不推荐的实体框架自跟踪实体
在查看微软的网站时,我发现他们不再建议使用自跟踪实体 下面的每个链接都是提到不要使用STE的MS资源:C# Microsoft不推荐的实体框架自跟踪实体,c#,.net,entity-framework,self-tracking-entities,C#,.net,Entity Framework,Self Tracking Entities,在查看微软的网站时,我发现他们不再建议使用自跟踪实体 下面的每个链接都是提到不要使用STE的MS资源: 显示实体框架团队可用的模板: 有人知道为什么微软不再推荐使用STEs吗?(注意:由于我不为微软工作,这都是基于他们的公开声明和过去历史的猜测) 您发布的第一篇文章“有点”解释了原因,但不是很清楚:他们希望您使用更好的替代方案,并且无意修复或改进STE。微软正在把STE放入“早期失败实验”的垃圾箱,类似于RDO、远程处理或LINQ2SQL——他们把一些东西放出来,看看它工作得有多好,但
- 显示实体框架团队可用的模板:
从我对
DbContext
的了解和体验来看,它应该是解决这个问题的更好的选择,尽管它实际上并没有复制STEs所做的。EF大量用户的普遍共识似乎是,端到端序列化EF实体是一个非常糟糕的主意。相反,您应该使用DTO和类似的东西在DTO和EF对象之间进行映射。我编写了可跟踪实体作为STE的替代品:。它部署为一组NuGet包和Visual Studio扩展。有一组项目模板,包括用于ASP.NET Web API脚手架的T4模板,以及用于生成WCF服务的项模板
这是我写的一篇博客文章,比较了TE和STE
干杯,
托尼·斯内德(Tony Sneed)今天早些时候你没问过吗?我不是微软,我只能猜原因是什么。这就是说,要求模型层之上的每一层都包含自跟踪逻辑的正确实现听起来与使用N层体系结构一开始应该实现的目标完全相反。例如,您无法通过可互操作的web服务轻松公开您的服务层。另一个假设是,STE听起来相当“神奇”,可能最终没有做用户想要做的事情,没有办法定制行为。它在你的一个链接中说“自我跟踪实体不能与代码优先模型一起使用”@CodesInChaos我在你链接的帖子中没有问这个问题。这是巧合。当我发布我的问题时,这个问题还不存在。对于Visual Studio 2012,创建edmx模型将自动包括[当前]推荐的T4模板,这将使初学者更容易入门,并提供一个合适的“默认选项”。