0
我有一个独特的要求,我希望LINQ to SQL可以实现。LINQ to SQL:如何使用列别名扩展实体类
首先,我扩展了一个旧的应用程序,所以我被困在当前的数据库列名和现有的LINQ实体类中。
我有一个LINQ包装用下面的方法:
public T Get(int id) where T : class, IEntity {
...
}
IEntity看起来像:
public interface IEntity {
int Id { get; }
}
我的现有实体类(由LINQ生成)看起来像:
//this is not the exact code
//it is just to give you an idea
public parital class Widget {
public int WidgetId { get; set; }
public string WidgetName { get; set; }
}
因此,为了使Widget与我的包装一起工作,我将它扩展为IEntity,如:
public partial class Widget : IEntity {
public int Id { get { return WidgetId; } }
}
当我做了选择,如:
Repository<Widget>.Get(123);
我得到一个错误说ID没有在SQL映射。
我想知道的是,有一种方法可以让Widget成为一个IEntity,并使用Id作为WidgetId的别名。已经有很多旧的代码(没有存储库包装器)被引用WidgetId,所以我不想改变它。
所有的建议表示赞赏。我是否在谈论这个错误?
我最近在这里阅读过SO,从数据库更改更新LINK到SQL模型的正确方法是删除它上的所有对象并再次从数据库中复制。那会摧毁这个变化,不是吗? LINQ to SQL直接映射到数据库,所以这看起来不太合适。 – 2009-07-07 04:41:58