如何将存储过程绑定到包含以下内容的对象

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/

10-11 01:56