Dav*_*Fox 6 .net c# connection-string sqlmetal linq-to-sql
我需要定期刷新我的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
Run Code Online (Sandbox Code Playgroud)
SqlMetal生成.dbml文件,万岁.但是,问题1可以通过编程方式将.dbml文件包含到我的项目中吗?
问题2
为什么,当我手动包含新生成的.dbml文件后编译时,我的每个类都有与其无参数构造函数的行号相关的以下构建错误?例如30个表= 30个构建错误.
'System.Data.Linq.DataContext' does not contain a constructor that takes 0 arguments
Run Code Online (Sandbox Code Playgroud)
实际上
我注意到我DataDataContext生成的类没有无参数构造函数,所以我添加了一个部分类来补充,但它仍然不能解决问题.
public partial class DataDataContext
{
public DataDataContext() :
base(global::DAL.Properties.Settings.Default.MyConnectionString, mappingSource)
{
OnCreated();
}
}
Run Code Online (Sandbox Code Playgroud)
我认为这个刷新过程可以自动化,但手动添加生成这些构造函数错误的生成的.dbml文件对我来说不起作用.
我使用分部类来创建无参数构造函数(就像您所做的那样)并且没有任何问题。
DataDataContext请注意,您正在命名空间中创建DAL。(上面的代码中缺少该内容)
namespace DAL {
public partial class DataDataContext
{
public DataDataContext() :
base(global::DAL.Properties.Settings.Default.MyConnectionString, mappingSource)
{
OnCreated();
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1573 次 |
| 最近记录: |