日期:2014-05-17  浏览次数:20790 次

Linq 属性映射的问题,头疼两天了
有一个实体基类如下
public abstract class EntityBase
{
  public abstract int Id { get; set; }
}

有一个实体类如下
  [Serializable]
  [Table(Name = "shop")]
  public class Shop : EntityBase
  {
  private int id;
  [Column(Name = "Id")]
  public override int Id
  {
  get{return id;}
  set{id = value;}
  }
  [Column(Name = "shop_code")]
  public string ShopCode { get; set; }
  }
数据库操作基类如下
public class Manager<Entity> where Entity: EntityBase
{
//根据主键查询方法
  public virtual Entity Get(int id)
  {
  Entity result;
  using (DataContext context = new DataContext("数据库连接字符串"))
  {
  Table<Entity> entities = context.GetTable<Entity>();
  var results = from entity in entities
  where entity.Id == id//重点就是这句
  select entity;
   
  result = results.Count() > 0 ? results.First() : null;
  }
  return result;
  }
}
只要加上重点那句就会报下面的错误:类成员 EntityBase.Id 未映射。

哪位大神指点一下,谢谢了,qq:506795

------解决方案--------------------
试试
where entity.Id equals id