如何向 linq2Sql ORM 添加属性 Table
How to add properties to linq2Sql ORM Table
在我的 SQL table 中,我有两个属性,StartDateTime 和 EndDateTime,在我的代码中,我有 Linq2Sql ORM table,它映射了相应的 StartDateTime 和 EndDateTime。我决定这样添加持续时间:
public TimeSpan Duration
{
get
{
TimeSpan ts =(TimeSpan) (EndDateTime - StartDateTime);
return ts;
}
}
这行得通,但是当我通过设计器修改我的 dbml 文件时,添加的内容当然会随着文件被重写而消失。
我的问题是添加持续时间 属性 的最佳做法是什么,我真的不想将它添加到源 SQL Table 中,因为将它放在那里似乎是多余的。
更新:
因为创建的 ORM table 被定义为 "public partial class" 我创建了一个额外的代码文件来保留我的 class 添加,例如在添加 属性 [=19= 的情况下].
实体 class 是部分 class。
因此,您可以将 属性 放在一个单独的文件中,其中包含:
public partial class MyEntity
{
public TimeSpan Duration
{
get
{
TimeSpan ts =(TimeSpan) (EndDateTime - StartDateTime);
return ts;
}
}
}
不要修改自动生成的文件,将一个新文件添加到您的项目中,其中包含 class
的部分定义
// File : MyTableClass_Extend.cs
public partial class MyTableClass
{
public TimeSpan Duration
{
get
{
TimeSpan ts =(TimeSpan) (EndDateTime - StartDateTime);
return ts;
}
}
}
您可以使用以下方法进行操作:
TimeSpan 持续时间 = _MyEndDataTime.Subtract(_MyStartDateTime);
但请记住,TimeSpan 最多只能保持 11:59:59 (hh:mm:ss) 的时间,因此如果 StartDateTime 和 EndDateTime 超过 24 小时,您将被卡住,所以我建议使用 DataTime 来获取持续时间而不是 TimeSpan。
在我的 SQL table 中,我有两个属性,StartDateTime 和 EndDateTime,在我的代码中,我有 Linq2Sql ORM table,它映射了相应的 StartDateTime 和 EndDateTime。我决定这样添加持续时间:
public TimeSpan Duration
{
get
{
TimeSpan ts =(TimeSpan) (EndDateTime - StartDateTime);
return ts;
}
}
这行得通,但是当我通过设计器修改我的 dbml 文件时,添加的内容当然会随着文件被重写而消失。 我的问题是添加持续时间 属性 的最佳做法是什么,我真的不想将它添加到源 SQL Table 中,因为将它放在那里似乎是多余的。
更新: 因为创建的 ORM table 被定义为 "public partial class" 我创建了一个额外的代码文件来保留我的 class 添加,例如在添加 属性 [=19= 的情况下].
实体 class 是部分 class。 因此,您可以将 属性 放在一个单独的文件中,其中包含:
public partial class MyEntity
{
public TimeSpan Duration
{
get
{
TimeSpan ts =(TimeSpan) (EndDateTime - StartDateTime);
return ts;
}
}
}
不要修改自动生成的文件,将一个新文件添加到您的项目中,其中包含 class
的部分定义// File : MyTableClass_Extend.cs
public partial class MyTableClass
{
public TimeSpan Duration
{
get
{
TimeSpan ts =(TimeSpan) (EndDateTime - StartDateTime);
return ts;
}
}
}
您可以使用以下方法进行操作:
TimeSpan 持续时间 = _MyEndDataTime.Subtract(_MyStartDateTime);
但请记住,TimeSpan 最多只能保持 11:59:59 (hh:mm:ss) 的时间,因此如果 StartDateTime 和 EndDateTime 超过 24 小时,您将被卡住,所以我建议使用 DataTime 来获取持续时间而不是 TimeSpan。