我需要定期刷新我的 Linq To SQL 类;是的,我为没有充分考虑我的数据模式而感到羞耻,糟糕的开发人员,令人作呕。我发现 SQLMetal 几乎可以解决问题,但也许我在参数列表中遗漏了一些东西。
当我使用 Visual Studio 外部工具从闪亮的新工具栏按钮运行批处理文件时,
@echo off
del c:\path\to\LinqToSql.dbml
SQLMetal.exe /server:SERVER\SQLSERVER /database:db /timeout:0 /dbml:"c:\path\to\LinqToSql.dbml" /namespace:DAL /context:DataDataContext /entitybase:System.Data.Linq.DataContext /language:csharp /pluralize
SqlMetal 生成 .dbml 文件,万岁。但是,问题 1我可以以编程方式将 .dbml 文件包含到我的项目中吗?
问题2
为什么,当我在手动包含新生成的 .dbml 文件后进行编译时,我的每个类是否都有以下与其无参数构造函数的行号相关的构建错误?例如 30 个表 = 30 个构建错误。
'System.Data.Linq.DataContext' does not contain a constructor that takes 0 arguments
实际上
我确实注意到我DataDataContext
生成的类没有无参数构造函数,所以我添加了一个部分类来补充,但它仍然不能解决问题。
public partial class DataDataContext
{
public DataDataContext() :
base(global::DAL.Properties.Settings.Default.MyConnectionString, mappingSource)
{
OnCreated();
}
}
我认为这个刷新过程可以自动化,但是手动添加生成的 .dbml 文件会产生这些构造函数错误,这对我不起作用。