我有一个存储过程,它返回这样的记录(我简化了它)
SELECT
Id, FirstName, LastName, Father.FirstName, Father.LastName
FROM Profiles
Left JOIN Profiles Father on Profiles.FatherId = Father.Id
我希望将此记录作为对象的2个属性返回
var result = dataContext.StoredProcedure();
Profile = result.Profile;
Father = result.Father;
我的问题是,我如何拍摄单曲
SELECT
Id, FirstName, LastName, Father.FirstName, Father.LastName
将它的一半分成一个属性/对象(Profile),另一半成为另一个属性/对象(父)
使用存储过程的原因 实际的sql语句包括一个全文搜索,linq不支持,所以我不能使用普通的linq查询。
答案 0 :(得分:2)
如果我理解你的问题,你需要两个强类型的对象,'Profile'和&来自SQL结果集的“父亲”。我看到两个选项可以做到这一点;
1>从存储过程中获取结果,并按如下所述创建对象;
Profile p = new Profile P { Id=result.Id, FirstName= result.FirstName, LastName=result.LastName};
//and similar code for creating the 'Father' object
2 - ;在存储过程中,首先在表变量中获取结果,然后从该表变量中选择两个结果,第一个是“Profile”,第二个是“Father”。调用存储过程的LINQ to SQL方法应设置为允许多个结果集。然后,您可以访问结果,如;
Profile = result.Profile;
Father = result.Father;
答案 1 :(得分:0)