LinqToSql 调用默认方法
LinqToSql calling default method
我有一个数据库 table 名为 Articles。
Table 存储文章并有一个字段 CDTimeStamp。
CDTimestamp 字段被更改为这样,因此它始终具有正确的创建日期:
ALTER TABLE [dbo].[Artikel] ADD CONSTRAINT [DF_Artikel_CDTimeStamp] DEFAULT (getdate()) FOR [CDTimeStamp]
GO
因此,如果我尝试添加文章,则会出现错误。
文章是这样添加的:
public void AddArticle()
{
this.Open();
Article article = new Article();
article.Description = "";
article.ArticleNr = GetArticleNumber();
article.Barcode = GetBarcode(); //EAN
article.Branch = GetBranch(); // 3digit number
article.Company = GetCompany(); // 1 or 2
article.Preis = GetPrice();
article.PreisNew = GetNewPrice();
//article.CDTimeStamp = DateTime.Now;
_OutDataContext.Artikel.InsertOnSubmit(article);
try
{
this.Submit();
}
catch (Exception e)
{
throw;
}
this.Close();
}
我得到的错误是:
SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and
12/31/9999 11:59:59 PM.
如果我取消注释 //article.CDTimeStamp = DateTime.Now;
,则会创建并插入 DateTime,但应该插入 getdate() 默认值,而不是我在程序中创建的值。
我的问题是:
是否有配置条目或类似的东西可以调用默认函数?数据库字段不能为空。
P.S.
我不太确定如何称呼这个问题,所以如果您知道更正确的标题,请随时编辑它。
我想 ColumnAttribute.IsDbGenerated
就是您要找的。
在 class 映射中使用类似的东西:
class Article
{
[Column(..., IsDbGenerated = true)]
public DateTime CDTimeStamp { get; set; }
...
我有一个数据库 table 名为 Articles。
Table 存储文章并有一个字段 CDTimeStamp。 CDTimestamp 字段被更改为这样,因此它始终具有正确的创建日期:
ALTER TABLE [dbo].[Artikel] ADD CONSTRAINT [DF_Artikel_CDTimeStamp] DEFAULT (getdate()) FOR [CDTimeStamp]
GO
因此,如果我尝试添加文章,则会出现错误。 文章是这样添加的:
public void AddArticle()
{
this.Open();
Article article = new Article();
article.Description = "";
article.ArticleNr = GetArticleNumber();
article.Barcode = GetBarcode(); //EAN
article.Branch = GetBranch(); // 3digit number
article.Company = GetCompany(); // 1 or 2
article.Preis = GetPrice();
article.PreisNew = GetNewPrice();
//article.CDTimeStamp = DateTime.Now;
_OutDataContext.Artikel.InsertOnSubmit(article);
try
{
this.Submit();
}
catch (Exception e)
{
throw;
}
this.Close();
}
我得到的错误是:
SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.
如果我取消注释 //article.CDTimeStamp = DateTime.Now;
,则会创建并插入 DateTime,但应该插入 getdate() 默认值,而不是我在程序中创建的值。
我的问题是:
是否有配置条目或类似的东西可以调用默认函数?数据库字段不能为空。
P.S. 我不太确定如何称呼这个问题,所以如果您知道更正确的标题,请随时编辑它。
我想 ColumnAttribute.IsDbGenerated
就是您要找的。
在 class 映射中使用类似的东西:
class Article
{
[Column(..., IsDbGenerated = true)]
public DateTime CDTimeStamp { get; set; }
...