我正在学习EF4,并希望有人推荐如何在存储过程中使用复杂条件搜索实体并返回实体及其导航属性的最佳实践。
因此,假设我有一个Customer表和一个Contact表。客户可以拥有多个联系人。 customer表包含CustomerID和Company名称,而Contact表包含名称和电子邮件地址。这实际上是过度简化,实际上我需要继续使用存储过程进行搜索,因为它也在进行近似的字符串匹配。
SP仅返回客户列,并包含一列以指示每个搜索结果的分数。
问题是,如何在仍然捕获分数的同时将结果捕获到客户实体中?
此外,有没有办法在同一个调用中加载联系人(这是客户实体的导航属性)?如果可能,如果通过电子邮件地址进行搜索,它会返回客户,但只返回与该电子邮件地址的联系人?
答案 0 :(得分:0)
在我看来,在使用EF时从存储过程中获取数据是错误的方法,你将失去EF带来的所有灵活性,而你不想用EF做的事情就是编写SQL查询。
对于某些示例如何加载联系人等,您可以在此处找到http://code.msdn.microsoft.com/ef4
答案 1 :(得分:0)
与此同时,我在here
得到了答案