2017-06-14 60 views
3
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Gender", DbType="Int NOT NULL", UpdateCheck=UpdateCheck.Never)] 
public int Gender 
{ 
    get 
    { 
     return this._Gender; 
    } 
    set 
    { 
     if ((this._Gender != value)) 
     { 
      this.OnGenderChanging(value); 
      this.SendPropertyChanging(); 
      this._Gender = value; 
      this.SendPropertyChanged("Gender"); 
      this.OnGenderChanged(); 
     } 
    } 
} 

有一个update check的属性,我将它设置为never。但是,当我在dbml中做了一个小改动时,我必须将这个字段的这个属性设置为不再。我如何在部分类中永久覆盖此属性?重写linq属性c#

更新:在设计

partial class DataBaseDataContext : System.Data.Linq.DataContext 
{ 
    public DataBaseDataContext() : 
     base(ConfigurationManager.ConnectionStrings["MyConnection"].ToString()) 
    { 
     OnCreated(); 
    } 
} 
+1

问题。你为什么要为你的项目使用Linq2Sql?相反,微软已经相当放弃该系统来支持实体框架。 –

+0

我认为这个图在实体和linq中是相同的,是不是? – Nofuzy

+0

我不知道,我从来没有使用EF的dbml文件,我只使用Code First。 –

回答

1

我发现this解决方案,做同样的/类似于你问什么。你应该看看那个。代码使用反射来查找所需的列并进行必要的更改。你必须调整它以适应你的情况,并看看你是否满意自己的表现。

1

打开dbml的文件,并设置Update Check的属性设置为所需的值:作为一个例子,我可以改变的dbml连接字符串这样的,一次永远。不要直接修改生成的文件,它会被覆盖。

enter image description here

+0

有时我向数据库添加一个表或修改它,我需要重新构建一个新的dbml设计,但是有些部分是相同的,我必须始终将其更新检查设置为永远不会更新。我需要一次覆盖它,我给我的问题添加一个例子。 – Nofuzy