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