【问题标题】:Auto-generate DBML from entities?从实体自动生成 DBML?
【发布时间】:2009-04-19 09:15:30
【问题描述】:

有没有办法从实体类而不是从数据库表中生成 DBML 文件?这对于原型设计非常有用,其中只需创建一个逻辑模型并让自动生成的工具创建 DBML 文件。使用 DBML 文件,可以使用 SqlMetal 生成 Linq to SQL 类并完成它。因此,要快速制作原型,您可以:

1.定义模型

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    // etc
}

2.运行工具(选择实体)

3.获取自动生成的DBML文件

4.运行SqlMetal toolDamiens t4 scripts创建Linq to SQL类

5.针对自动生成的数据上下文和自动生成的数据库编写代码(例如,使用 DataContext.CreateDatabase() 创建初始数据库)。某种形式的数据库迁移会更好。

或者我想从对象而不是从 DB 中生成对象是不是很奇怪? :)

【问题讨论】:

  • 现在,一个有趣的替代方案是使用具有自动映射功能的 FluentNHibernate 以及 NHibernate.Linq。这样,很容易提出数据库模型,也很容易自定义自动映射。我希望这对其他人也有帮助。

标签: c# linq-to-sql


【解决方案1】:

不存在。目前,为 Linq to SQL 生成 DBML 的唯一方法是使用 sql 数据库源。

这可能有一天会存在于实体框架中,但目前也不存在。

【讨论】:

    【解决方案2】:

    实际上我的做法略有不同:

    1. 定义我的数据结构的 XML 模型
    2. 使用 XSLT 生成用于创建、读取、更新插入等的存储过程。
    3. 使用存储过程创建数据库
    4. 以典型方式使用 Linq→SQL,导入存储过程(我不导入模型,因为 Linq→SQL 不知道如何使用 groovy '2008 功能)
    5. 使用模型

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-06
      • 2017-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-04
      相关资源
      最近更新 更多