找不到LINQ列属性

时间:2009-09-02 13:13:28

标签: linq-to-sql

我是LINQ的初学者。

我使用的是.NET 3.5。和VS 2008。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Data.Linq.Mapping;
using System.Data.Linq.Provider;

namespace LINQ_to_SQL_Test
{
    [Table(Name="Person")]
    public class Person
    {
        [Column(Name="ID", Storage="_ID", DbType="IS NOT NULL IDENTITY", Id=true, AutoGen=true)]
        public int ID { get; set; }
        public int IDRole { get; set; }
        public string LastName { get; set; }
        public string FirstName { get; set; }
    }
}

该程序无法在Column属性中找到IdAutoGen的定义。

我该怎么办?

2 个答案:

答案 0 :(得分:1)

通过“[t]他编程”我假设您指的是C#编译器,并且可能csc与Visual Studio 2008一起安装。

用于设置ColumnAttribute属性的语法已过时;我相信当LINQ作为CTP发布时,语法是正确的。现在正确的语法是:

[Column
    (
    Name="ID",
    Storage="_ID",
    DbType="Int NOT NULL IDENTITY",
    IsPrimaryKey=true,
    IsDbGenerated=true
    )
]

也就是说,Id已被IsPrimaryKey取代,AutoGen已被IsDbGenerated取代。

答案 1 :(得分:0)

ColumnAttribute中没有此类属性。对于Id,您要查找的内容可能是IsPrimaryKey。关于AutoGen,我不知道在这种背景下它应该是什么意思......

编辑:好的,我明白你的意思AutoGen ...我认为正确的属性是IsDbGenerated