如果我正在使用实体框架并且我有一个与子表具有一对多关系的父表,并且我想使用存储过程来返回父级的子级,我是否会向我的父模型添加一个新属性(例如GetChildren)并使用函数导入,然后调用该属性而不是默认的“子”实体来使用我的存储过程?
这是否可能,如果可以,是否有任何教程的好链接?不知道我应该搜索什么以及如何完成。
如果我正在使用实体框架并且我有一个与子表具有一对多关系的父表,并且我想使用存储过程来返回父级的子级,我是否会向我的父模型添加一个新属性(例如GetChildren)并使用函数导入,然后调用该属性而不是默认的“子”实体来使用我的存储过程?
这是否可能,如果可以,是否有任何教程的好链接?不知道我应该搜索什么以及如何完成。
It seems that you don't want to use a navigation property but a loading method.
If yes, imho, such a method should be at DAL or repository level not at business level. So, as a pseudo implementation, your implementation should look like this:
public class MasterBC {
public int Id {get; set;}
//...
}
public class ChildBC {
public int Id {get; set;}
//...
}
public class DALContext : DbContext() {
IDbSet<MasterBC> Masters {get; set;}
IEnumerable<ChildBC> GetChildren(Int32 id) {
return this.Database.SqlQuery<ChildBC>("exec usp_name {0}", id);
}
}
But, why not use a navigation property ?