表:UserTypes
如何引用LINQ中使用保留字命名的字段?
領域: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 the word is a word reserved.i can not user word
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;
}
}
}
}
是。這就是爲什麼使用保留字如類型作爲字段名稱是一個壞主意。 – JohnFx
如果你使用IDE來設置映射(DBML),它通常會自動生成這個對象...... –
@JohnFx - 在他的防守中,它是一個C#保留字而不是'SQL' - 也許他是一個DB人員,不是OO程序員。 – JNK