如何向linq2Sql ORM表添加属性

时间:2016-02-22 13:49:17

标签: c# linq-to-sql

在我的SQL表中,我有两个属性,StartDateTime和EndDateTime,在我的代码中,我有Linq2Sql ORM表,它映射了相应的StartDateTime和EndDateTime。我决定添加一个持续时间:

public TimeSpan Duration
{
   get
   {
      TimeSpan ts =(TimeSpan) (EndDateTime - StartDateTime);
      return ts;
   }
}

这样可行,但是当我通过设计器修改我的dbml文件时,当文件被重写时,添加当然会消失。 我的问题是添加持续时间属性的最佳做法是什么,我真的不想将它添加到源SQL表中,因为它似乎是多余的。

更新: 由于创建的ORM表被定义为“公共部分类”,因此我创建了一个额外的代码文件来保存我的类添加,例如在添加属性“Duration”的情况下。

3 个答案:

答案 0 :(得分:0)

实体类是一个部分类。 因此,您可以将您的财产放在一个单独的文件中,其中包含:

var settings = new JsonSerializerSettings()
{
    ContractResolver = new OrderedContractResolver()
};

var json = JsonConvert.SerializeObject(obj, Formatting.Indented, settings);

答案 1 :(得分:0)

不要修改自动生成的文件,使用类的部分定义将新文件添加到项目中

sudo fail2ban-client -vvv  'set' 'jail' 'banip' 'ip'

答案 2 :(得分:0)

您可以使用以下方式执行此操作:

TimeSpan duration = _MyEndDataTime.Subtract(_MyStartDateTime);

但是请记住,TimeSpan只能保持时间到11:59:59(hh:mm:ss)所以如果StartDateTime和EndDateTime超过24小时你将被卡住,所以我建议使用DataTime来获取持续时间而不是TimeSpan。