gpt4 book ai didi

entity-framework - Entity Framework 合并梦Night

转载 作者:行者123 更新时间:2023-12-03 09:29:54 25 4
gpt4 key购买 nike

我们采用了Entity Framework,我们发现当多个人在各自的源代码控制分支中进行孤立的更改时,当他们合并在一起时会出现巨大的冲突,从而导致模型文件损坏。

我们倾向于在文件上强制执行独占 checkout ,但我想避免这种情况。

我的问题是

是否有更好的比较工具可以更好地处理此问题,还是我们可以采用其他方法?

寻找可以证明的东西。

新更新:
对于那些遇到此问题的人,它是基于旧的EF。我建议转向在EDMX上使用DbContext。这里有很多关于它的信息。我认为,数据库优先或代码优先的简单性远远超过了设计人员的损失。

更新:
我们通过强制对文件进行独占更改来解决此问题。通过添加此过程,我们完全消除了任何问题。虽然这不是理想的解决方案,但它是最可靠,最容易实现的。

最佳答案

Craig Stuntz很好地解释了与设计者相关的xml(设计图面上的实体和关联等的位置)会引起此处的大多数问题。但是,edmx:Runtime元素内的冲突解决是可以实现的。

处理与设计器相关的xml中的冲突的最佳策略是,通过牺牲任何自定义布局并将其还原为默认布局来完全绕开它们。

技巧是删除<Diagrams>元素的所有内容。设计器将打开,没有任何问题,并应用默认布局。

以下是将以默认布局打开的EDMX文件的示例。请注意,<edmx:Runtime>元素的内容也已删除,但这只是出于简洁目的-它不是解决方案的一部分。

<?xml version="1.0" encoding="utf-8"?>
<edmx:Edmx Version="2.0" xmlns:edmx="http://schemas.microsoft.com/ado/2008/10/edmx">
<!-- EF Runtime content -->
<edmx:Runtime>
<!-- Removed for brevity's sake only!-->
</edmx:Runtime>
<!-- EF Designer content (DO NOT EDIT MANUALLY BELOW HERE) -->
<Designer xmlns="http://schemas.microsoft.com/ado/2008/10/edmx">
<Connection>
<DesignerInfoPropertySet>
<DesignerProperty Name="MetadataArtifactProcessing" Value="EmbedInOutputAssembly" />
</DesignerInfoPropertySet>
</Connection>
<Options>
<DesignerInfoPropertySet>
<DesignerProperty Name="ValidateOnBuild" Value="true" />
<DesignerProperty Name="EnablePluralization" Value="True" />
<DesignerProperty Name="IncludeForeignKeysInModel" Value="True" />
</DesignerInfoPropertySet>
</Options>
<!-- Diagram content (shape and connector positions) -->
<Diagrams>
</Diagrams>
</Designer>
</edmx:Edmx>

请注意,当您从设计器的上下文菜单中选择 Diagram | Layout Diagram时,此处应用的默认布局与我期望的结果不匹配。

更新:Entity Framework 5开始,这变得容易一些。在那里添加的 multiple diagram support将与图相关的xml卸载到单独的文件中。请注意,我在edmx文件中仍然有一些与图相关的旧标记,这些标记经历了许多Entity Framework升级。我只是从edmx文件中删除了名为Diagrams(包括子级)的标签。

关于entity-framework - Entity Framework 合并梦Night,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1434554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com