C# 使实体框架联接表显式,使用分部类和扩展方法减少代码更改
我需要在“隐式”实体框架联接表中添加一个额外的字段—添加一个排序键。 这将破坏大量依赖于 classA.ClassB和classA.Add(项B);等等 是否有使用扩展方法和分部类的方法来最小化或删除其他代码更改 我一直在试图找出一些关于C# 使实体框架联接表显式,使用分部类和扩展方法减少代码更改,c#,entity-framework,C#,Entity Framework,我需要在“隐式”实体框架联接表中添加一个额外的字段—添加一个排序键。 这将破坏大量依赖于 classA.ClassB和classA.Add(项B);等等 是否有使用扩展方法和分部类的方法来最小化或删除其他代码更改 我一直在试图找出一些关于 public partial class ClassA { public IQueryable<ClassB> ClassBs { get {
public partial class ClassA {
public IQueryable<ClassB> ClassBs
{
get
{
return this.JoinAB.Select(x => x.ClassB).OrderBy(x => x.SortKey).AsQueryable();
}
}
}
公共部分类ClassA{
公共可查询类
{
得到
{
返回this.JoinAB.Select(x=>x.ClassB).OrderBy(x=>x.SortKey).AsQueryable();
}
}
}
这会导致“无法转换为存储表达式”类型的问题,而且我不确定如何到达“lefthandside”结尾
public bool ICollection Add(ClassB itemToAdd,int-sortKey=0){
var jab=newjoinab{SortKey=SortKey,ClassB=itemToAdd};
此。*左手侧*.Add(jab);
返回true;
}
那么,这有可能做到吗?如果有,怎么做?答案是不幸的是没有,你必须更新用法。必须有一条路线来至少正确地完成第一个示例-从关系的一端到另一端,因为商店表达式是EF擅长的!
public bool ICollection<ClassA> Add(ClassB itemToAdd, int sortKey=0){
var jab = new JoinAB{SortKey=sortKey, ClassB=itemToAdd};
this.*leftHandSide*.Add(jab);
return true;
}