Как мне ссылаться на поле в LINQ, имя которого зарезервировано? - PullRequest
5 голосов
/ 23 августа 2011

таблица: UserTypes

Поля: row,name,Type

Этот код не работает:

 Int64 row = 1;
var myType = (from b in dc.UserTypes where b.Row == user.Row  select b).Single();
myType.Type = "personalPage";
dc.SubmitChanges();

Но этот код работает ...
dc.ExecuteQuery<UserType >("update dbo.UserType set Type='personalPage' where row={0}",user.Row);

Я получаю эту ошибку:

Введите слово зарезервированное слово. Я не могу использовать слово пользователя Type

РЕДАКТИРОВАТЬ

dbml

  [Table(Name="dbo.UserType")]
  public partial class UserType
 {

     private long _Row;

     private string _Type;

     public UserType()
     {
     }

     [Column(Storage="_Row", DbType="BigInt NOT NULL")]
     public long Row
     {
     get
      {
        return this._Row;
       }
     set
       {
        if ((this._Row != value))
        {
            this._Row = value;
        }
        }
    }

    [Column(Storage="_Type", DbType="NVarChar(500) NOT NULL", CanBeNull=false)]
    public string Type
     {
    get
    {
        return this._Type;
    }
    set
    {
        if ((this._Type != value))
        {
            this._Type = value;
        }
    }
    }

}               

Ответы [ 2 ]

7 голосов
/ 23 августа 2011

Перейдите к вашему отображению LINQ to SQL DBML и измените отображение для UserType.Type со столбца с именем «Тип» на столбец с именем «[Тип]».Вы можете сделать это в конструкторе или вручную.

3 голосов
/ 10 февраля 2015

Вы можете ссылаться на него как UserType.@Type в вашем коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...