我无法使这个类可枚举

本文关键字:枚举 | 更新日期: 2023-09-27 18:20:34

我在数据库中有一个名为Personel的表,字段名称为:Id、Name、LastName、Salary和Position。我创建了一个类,它扩展了DataContext,然后创建了具有属性的列。然后我在这个类中尝试了itarate。但下面出现了这个异常。字段名称和值是正确的我不知道这个错误是什么

指定的强制转换无效。

这是我的

  public  class PersonelDbContext:DataContext
    {
      public Table<Personel> Personel;
      public PersonelDbContext()
          : base("server=.''sqlexpress;database=Project;User Id=sa;Password=1")
      {

      }
    }
[Table(Name="Personel")]
    public class Personel {
    private int _id;
    private string _name;

    private string _lastname;

    private int _salary;

    private string _position;

    [Column(Name="Id",Storage="_id",DbType="Int not null",IsPrimaryKey=true,IsDbGenerated=true)]
    public int ID
    {
        get { return _id; }
        set { _id = value; }
    }
    [Column (Name="Name",Storage="_name",DbType="Int not null identity")]
    public string Name
    {
        get { return _name; }
        set { _name = value; }
    }
    [Column(Name="LastName",Storage="_lastname",DbType="Nvarchar not null")]
    public string Lastname
    {
        get { return _lastname; }
        set { _lastname = value; }
    }
     [Column(Name="Salary",Storage="_salary",DbType="Int not null")]
    public int Salary
    {
        get { return _salary; }
        set { _salary = value; }
    }
       [Column(Name="Position",Storage="_position",DbType="Nvarchar not null")]
     public string Position
     {
         get { return _position; }
         set { _position = value; }
     }
   }
//}
  static void Main(string[] args)
        {
            PersonelDbContext dbcontext = new PersonelDbContext();
            var query = from c in dbcontext.Personel select c;
            foreach (var item in query)
            {
                Console.WriteLine("Id:", item.Name);
                Console.WriteLine("Id:", item.Lastname);
            }
            Console.ReadKey();
        }
    }

我无法使这个类可枚举

[Column (Name="Name",Storage="_name",DbType="Int not null identity")]
public string Name
{
    get { return _name; }
    set { _name = value; }
}

仔细看。数据库类型是什么?现在应该是什么?我猜是nvarchar(200) not null或类似的东西。

此外:您的Console.WriteLine线路不起作用;你的意思可能是:

Console.WriteLine("Id:" + item.Name);

或:

Console.WriteLine("Id:{0}", item.Name);