我有一个Linq-to-SQL模型,它在某些地方使用存储过程来返回需要更复杂SQL的对象。一切正常。
我现在需要从SP中返回一个自定义对象,该对象也封装了Linq-to-SQL对象。例如,我有一个基于Employee
表的名为Employee
的类。我还有一个名为rota
的自定义类,定义如下:
public class rota
{
public Employee employee{ get; set; }
public int DisplayOrder { get; set; }
public DateTime StartingTime { get; set; }
public DateTime FinishTime { get; set; }
}
我有一些相当复杂的linq,可以计算任何给定日期的员工轮回,然后返回该对象。我想将这个逻辑移动到存储过程,所以我完全控制sql(生成的sql不是很好)但是我不知道如何返回该对象?
答案 0 :(得分:1)
我相信这会有效但我还没有运行它。如果没有,我知道您可以使用返回表变量的SQL函数来执行此操作。
from x in dataContext.StoredProc("", "", "")
select new Rota {
DisplayOrder = x.DisplayOrder,
StartingTime = x.StartingTime,
FinishTime = x.FinishTime,
Employee = new Employee {
EmployeeId = x.EmployeeId,
Name = x.EmployeeName
}
}
答案 1 :(得分:1)
我建议为Rota对象创建一个构造函数,将sproc结果作为参数......这样你可以做到
.Select(x => new Rota(x)).ToList<Rota>();