因此,我在 VS 中从现有数据库创建了一个 DataContext (Linq-Sql)。它有一个名为 Users 的表,因此我有一个User
对象。特别是,我想关注UserID
和Username
属性。
现在,我有一个界面:
interface IUser
{
int Id { get; }
string Username { get; }
}
我想创建一个部分User
类并实现IUser
. 这样做的原因是,我可以在许多地方将任何用户视为 IUser,而不必担心精确的用户类:
public partial class User : IUser
{
public int Id
{
get { return UserID; }
}
}
我没有实现Username
get 属性,因为我知道实体对象已经实现了它。
当我有一个查询时,dc.Users.SingleOrDefault(p => p.Id == 5);
我知道这是一个错误,因为它会将该调用转换为 SQL 语句,并且它会尝试查找Id
不存在的列 - UserID 存在。所以我理解这个映射问题。
当我查询dc.Users.SingleOrDefault(p => p.Username == "admin")
时,它也会引发错误,但Username
确实是数据库中的现有列,所以我的印象是不需要进行自定义/附加映射。我错过了什么?
有人可以为我指出一个关于如何与 Linq 与部分类实现自定义接口作斗争的好资料吗?
更新问题: 在我尝试之前,有谁知道使用我们的自定义接口“装配”datacontext.designer.cs 文件(以实现类本身而不是在单独的部分类文件中)是否有效?这样做有什么后果吗?