我是实体框架的新手,我坚持以下几点。
我有一个已导入 EDMX 模型的现有数据库。
我的一些实体共享相同的“所有者”概念。
每个实体都有一个“所有者”的自定义名称。有时它被命名为“作者”,有时是“所有者”,有时是法语“auteur”。
所以我实现了一个简单的接口并创建了部分类,所以我的实体都可以共享相同的命名概念“所有者”。
public interface IAPIResource
{
int owner { get; }
}
还有我实体 BlogPost 的部分课程
public partial class BlogPost : IAPIResource
{
public int owner { get { return auteur; } }
}
现在我想在 LINQToEntities 查询中使用它,但 LINQ 告诉我这是不可能的,因为 IAPIResource 不是实体类型!
public List<T> GetFilteredEntities<T>(int owner, IQueryable<T> entities, MyDBContext db)
{
return entities.Where(e => ((IAPIResource)e).owner == owner).ToList();
}
我已经尝试过反射(.GetType
and .GetProperty
and .GetValue
),但 LINQ 也不支持。
我也尝试过 POCO,但运气不佳。
而且我不想用抽象实体等修改我的数据库模型。
有没有人有一个简单的解决方案而不深入研究 LINQ 表达式?
注意:真正的查询要复杂得多,这就是我不愿意使用表达式的原因。
谢谢你。