gpt4 book ai didi

c# - 生成 ADO.NET 实体数据模型文件,从哪里开始?

转载 作者:行者123 更新时间:2023-11-30 22:48:30 24 4
gpt4 key购买 nike

我们的产品部分使用 Delphi 构建,部分使用 .NET 构建,在我们迁移到 .NET 的当前状态下,我们在 Delphi 组件中有数据字典,所以这是大师。

由此我们通过模板生成 .NET 源代码,以支持简单的查询,同时也执行 Linq2Sql,因为我们的产品需要 SQL Server。

但是,我想切换到 .NET 中的新实体模型而不是 Linq2Sql,但我不知道这会有多少工作量。我找到的所有教程或示例似乎都围绕着在设计器中对数据模型进行建模,或者从数据库中获取它,这两者都不能满足我们的需求。

在 Linq2Sql 中,我们用 TableMappingAttribute 和 ColumnMappingAttribute 注释我们的查询类,然后生成 DataContext 的后代,这一切都很好。

是否有类似的简单途径来改用实体模型代码?还是我必须生成所有这些 xml 文件并运行工具来生成资源等?

有没有人遇到过同样的情况,可以解释一下吗?

最佳答案

不幸的是,我认为您确实需要 XML 文件。

实际上有 3 个文件构成了 EDM。 (虽然在 visual studio 中它们都组合成 1 个 EDMX 文件)

  • ssdl - 存储(描述数据库)
  • csdl - 概念(描述数据对象)
  • msl - mapping(描述存储和概念之间的映射)

从 EDM 文件中,EDM Generator可用于从数据库连接生成所有三个对象,仅从 ssdl 生成 msl 和 csdl,或者它可以从 csdl 生成实际数据对象。

不幸的是,XML 的使用还不止于此。 Entity Framework 在运行时仍然需要执行从对象到存储等的转换。必须在 Entity framework connection string 中提供对 3 个 EDM 文件的引用。 . (有关 building EF connection strings 的更多信息)

您可能会想到生成数据对象代码的方法(或使用各种必需的属性和额外方法自动标记现有的代码)- 像 Linq 一样,有一些属性,如 EdmEntityTypeAttribute 和 EdmScalarPropertyAttribute 放在类上,属性,但如果没有 3 个 EDM 文件, Entity Framework 将不知道如何处理您的数据对象。生成器还将其他内容添加到数据对象类中,例如属性更改事件和从 EntityObject 的继承。我不确定 Entity Framework 的正确操作需要哪些额外的东西,以及开发人员需要什么。我假设数据上下文需要属性更改事件来跟踪更改。

有一个 article here在 EDM 工具和一些用于生成/拆分 EDMX 文件到它们的组件 ssdl/csdl/msl 文件中的代码。

关于c# - 生成 ADO.NET 实体数据模型文件,从哪里开始?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1623636/

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