Csharp/C#教程:如何在ADO.NET Entity Framework中使用存储过程分享


如何在ADO.NET Entity Framework中使用存储过程

我有3张桌子; 我在ADO.NET Entity Framework中编写了一个存储过程。

ALTER PROCEDURE [dbo].[sp_GetDepartmanData] (@departman nvarchar(50)) BEGIN SELECT d.ID, d.Name as DepartmanName, sb.Salary, sb.email, sp.Name, sp.SurName, sp.Phone, sp.Married, sp.Address FROM Departman d INNER JOIN StaffsBusiness sb ON d.ID = sb.StaffsPersonelDepartmanID INNER JOIN StaffsPersonel sp ON sb.StaffsPersonelID = sp.ID WHERE d.Name = @departman END 

我需要一个我在下面写的存储过程函数:

 var staffPersonel = staffContext.GetPersonelInformationWithDepartmanID("Yazılım"); gvPersonel.DataSource = staffPersonel; gvPersonel.DataBind(); 

GetPersonelInformationWithDepartmanID函数我从SQL编写(ADO.NETentity framework中的用户定义函数)有3种替代方案(很傻!!!)但我有3个joininig表!!! 如果我之前加入3桌,我该如何使用?

好的,你需要在这里做几步:

你现在应该有一个函数导入类似于:

 public global::System.Data.Objects.ObjectResult GetPersonelInformationWithDepartmanID(global::System.String departmentName) { global::System.Data.Objects.ObjectParameter departmentNameParameter; departmentNameParameter = new global::System.Data.Objects.ObjectParameter("departmentNameParameter", departmentName); return base.ExecuteFunction("sp_GetDepartmanData", departmentNameParameter); } 

现在可以调用对象上下文中的此函数,以通过数据库中的存储过程检索数据。

编辑:

如果您在执行此操作后收到映射错误(“错误3027:未为以下EntitySet / AssociationSet指定映射”),那是因为您创建的实体未映射到任何内容,并且仅在函数导入填充集合时使用这些实体 您需要以某种方式将此实体映射到数据存储,或者您需要将其更改为复杂类型。

要创建复杂类型,只需打开EF设计器并右键单击空白区域。 转到添加>复杂类型。 您应该会在模型浏览器中看到一个新的复杂类型。 右键单击它并添加类似于向实体添加属性的标量属性。 然后删除您的实体并将复杂类型重命名为与实体相同。

这就是你所要做的:)

你如何创建这个“概念实体”? 如果我创建一个未映射到的实体,我会收到以下错误:“实体类型’foobar’未映射到数据库。

这里https://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/cd71317f-407f-4038-9a30-17dd7f529aa3

在这里https://www.danrigsby.com/blog/index.php/2009/05/20/entity-framework-40-scalar-and-void-functions/

上述就是C#学习教程:如何在ADO.NET Entity Framework中使用存储过程分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/996753.html

(0)
上一篇 2021年12月25日
下一篇 2021年12月25日

精彩推荐