C# 从实体自动生成DBML?

C# 从实体自动生成DBML?,c#,linq-to-sql,C#,Linq To Sql,有没有办法从实体类而不是数据库表生成DBML文件?这对于原型设计非常有用,只需创建一个逻辑模型,并让自动生成的工具创建DBML文件。有了DBML文件,就可以使用SqlMetal生成Linq到SQL类并使用它来完成。因此,要快速原型化,我们需要: 1.定义模型 public class Person { public string Name { get; set; } public int Age { get; set; } // etc } 2.运行工具(使用所选实体)

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

1.定义模型

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    // etc
}
2.运行工具(使用所选实体)

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

4.运行or以创建Linq到SQL类

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


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

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


有一天,实体框架可能存在这种情况,但当前也不存在这种情况。

实际上,我是以一种稍微不同的方式来做这件事的:

  • 定义我的数据结构的XML模型
  • 使用XSLT生成用于创建、读取、上传等的存储过程
  • 使用存储过程创建数据库
  • 与Linq合作→SQL以一种典型的方式导入存储过程(我不导入模型,因为Linq→SQL不知道如何使用groovy的“2008特性”)
  • 使用模型

  • 现在,一个有趣的替代方法是使用FluentNHibernate及其自动映射功能,以及NHibernate.Linq。这样,创建一个数据库模型非常简单,而且定制自动映射也非常容易。我希望这也能帮助其他人。