LINQ select子句类型混乱

时间:2015-02-20 15:41:00

标签: c# sql linq

我有以下型号

namespace Models
{
  [System.Data.Linq.Mapping.Table(Name = "RegionTable")]
  public class Region
  {
    [System.Data.Linq.Mapping.Column]
    public int ID { get; set; }

    [System.Data.Linq.Mapping.Column]
    public string Name { get; set; }

    [System.Data.Linq.Mapping.Column]
    public string OrchardRoleID { get; set; }
  }
}

我希望选择所有区域并通过Region模型对象列表返回。

为什么会这样?

var lQuery = from r in lDBContext.Regions new Models.Region { ID = r.ID, Name = r.Name };

var l = lQuery.ToList();

但以下不是

var lQuery = from r in lDBContext.Regions select r;

var l = lQuery.ToList();

因为它会抛出一个

 Unable to cast object of type 'System.Int32' to type 'System.String'.

异常?

1 个答案:

答案 0 :(得分:2)

您的问题是因为

public string OrchardRoleID { get; set; }

我认为这是您数据库中的int 在你的第一个例子中它起作用,因为你省略了那个字段