【发布时间】:2011-08-22 20:52:08
【问题描述】:
表: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;
}
}
}
}
【问题讨论】:
-
是的。这就是为什么使用 type 等保留字作为字段名称是一个坏主意的原因。
-
如果您使用 IDE 设置映射 (DBML),它通常会自动获取此权限...
-
@JohnFx - 在他的辩护中,这是一个 C# 保留字而不是
SQL一个 - 也许他是一个 DB 人,但不是一个 OO 程序员。 -
我怀疑您是否收到“键入单词是保留的单词。我不能使用用户单词类型”作为错误。请发布确切的错误消息。请非常具体地说明您从何处收到此消息。是在运行时,还是在编译时。由于“类型”不是 SQL Server 上的保留字,所以这里没有加起来。
-
@JNK 如果他们不是 OO 程序员,那他们为什么要编写代码?
标签: c# asp.net sql-server linq linq-to-sql