如何将存储过程绑定到包含以下内容的对象
public class Info
{
public string PupilFirstName // (just a string),
public string PupilLastName // (just a string)
public Teacher Teacher // (EF object)
}
所以我的存储过程是:
select Teacher.*, Pupil.FirstName PupilFirstName, Pupil.LastName PupilLastName
from Pupil
join Teacher on Teacher.Id = Pupil.TeacherId
虽然不起作用,但可能我需要更改存储过程,但我不知道如何。请帮忙。
更新:
让我尝试解释更多细节:
我希望该存储过程将绑定在具有复杂类型和实体类型的行上,因此结果将是:字符串,字符串,域对象。
最佳答案
EF不支持绑定嵌套实体。它仅绑定单个实体级别。同样,如果将Info
用作映射的复杂对象,则它不能包含对实体的引用-也不受支持,因为复杂对象可以用作实体的成员,反之亦然。
您需要展平Info
(使其包含Teacher
的所有成员),并且存储过程必须返回名称与Info
类中的属性相同的列。
关于c# - 如何格式化存储过程以映射到EF对象和自定义数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15768596/