【发布时间】:2016-11-08 13:29:28
【问题描述】:
我有一个需要更改为存储过程的 linq 表达式。 此 linq 表达式从 dbml(表)返回一个已定义的对象。
问题是当我调用我的存储过程(比如说 SP_test)时,它返回一个 SP_testResult 数组,我希望它返回一个已定义的表作为对象。
如果我在 dbml 中更改 SP 的返回类型,当我检查结果时,它不会返回任何内容,但如果我自己运行 SP,它会返回一个集合。
有没有办法定义返回的类型?说 SP_test 返回一个 Client 对象? (这是我的 dbml 模型中的一个表)还是应该将 SP_testResult 映射到一个 Client 对象中?
我想从这里开始:
this.bookings = db.Bookings
.FilterUser(_main.Identity.GetUser())
.Where(x => x.ProductId == PackageContent.ProductId && x.CampaignId == PackageContent.CampaignId && x.ClientId == PackageContent.ClientId)
.Where(x => Math.Abs((x.DateCreated - PackageContent.DateCreated).Days) < daysRange)
.ToList()
.Union(db.Bookings.Where(x => PackageContent.ExternCode == x.BussinessRefernce))
.OrderBy(x => x.DateCreated);
到这里:
this.bookings = db.SP_SearchSimilarBookings.toList();
在这两种情况下,this.bookings 都是 Bookings 类的数组。
【问题讨论】:
-
请出示您的代码。
-
codeE 在哪里? !
-
对不起,我添加了代码
-
"我希望它返回一个已定义的表作为对象。" “将表定义为对象”是什么意思?您的预期输出是什么?
-
您需要使用 SqlDataReader 或其他工具将您的 SP 中的结果映射到您的自定义对象中。
标签: c# sql-server linq asp.net-mvc-4 stored-procedures