博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《Entity Framework 6 Recipes》中文翻译——第十章EntityFramework存储过程处理(四)...
阅读量:5131 次
发布时间:2019-06-13

本文共 2913 字,大约阅读时间需要 9 分钟。

从存储过程返回一个复杂类型

问题

  您希望在模型使用存储过程中返回一个复杂类型。

解决方案

  让我们说,你有一个Employee实体模型。Employee包含员工的身份证、名称和一个复杂的地址类型,保存员工的地址、城市、州和邮政编码(address, city, state, 和 ZIPcode)。复杂类型的名称是员工地址。在员工实体的属性是简单的地址。

  您要使用存储过程返回雇员地址复杂类型的实例的集合。存储过程返回的地址如下:

create procedure [dbo].[GetEmployeeAddresses](@city varchar(50))asbegin        select [Address], City, [State], ZIPcode        from Employee where City = @cityend

1、右键单击设计面,并从数据库中选择更新模型。在对话框中,选择“GetEmployeeAddresses”存储过程。单击“完成”将存储过程添加到模型中。

2、右键单击设计图面上,并选择“添加➤函数导入。选择从所存储的过程名称下拉列表中GetEmployeeAddresses。在函数导入名称文本框中,输入GetEmployeeAddresses。这将是模型中的方法的名称。选择“复杂的返回类型”,并在下拉菜单中选择“ EmployeeAddress”。单击“确定”。

3、调用存储过程

using (var context = new School5Entities())            {                var emp1 = new Employee                {                    Name = "Lisa Jefferies",                    Address = new EmployeeAddress                    {                        Address = "100 E. Main",                        City = "Fort Worth",                        State = "TX",                        ZIPcode = "76106"                    }                };                var emp2 = new Employee                {                    Name = "Robert Jones",                    Address = new EmployeeAddress                    {                        Address = "3920 South Beach",                        City = "Fort Worth",                        State = "TX",                        ZIPcode = "76102"                    }                };                var emp3 = new Employee                {                    Name = "Steven Chue",                    Address = new EmployeeAddress                    {                        Address = "129 Barker",                        City = "Euless",                        State = "TX",                        ZIPcode = "76092"                    }                };                var emp4 = new Employee                {                    Name = "Karen Stevens",                    Address = new EmployeeAddress                    {                        Address = "108 W. Parker",                        City = "Fort Worth",                        State = "TX",                        ZIPcode = "76102"                    }                };                context.Employees.Add(emp1);                context.Employees.Add(emp2);                context.Employees.Add(emp3);                context.Employees.Add(emp4);                context.SaveChanges();            }            using (var context = new School5Entities())            {                Console.WriteLine("Employee addresses in Fort Worth, TX");                foreach (var address in context.GetEmployeeAddresses("Fort Worth"))                {                    Console.WriteLine("{0}, {1}, {2}, {3}", address.Address,                                       address.City, address.State, address.ZIPcode);                }            }

执行结果

 

转载于:https://www.cnblogs.com/yunxiaguo/p/5706800.html

你可能感兴趣的文章
变量声明和定义的关系
查看>>
Wpf 之Canvas介绍
查看>>
linux history
查看>>
jQuery on(),live(),trigger()
查看>>
Python2.7 urlparse
查看>>
sencha touch在华为emotion ui 2.0自带浏览器中圆角溢出的bug
查看>>
【架构】Linux的架构(architecture)
查看>>
ASM 图解
查看>>
Date Picker控件:
查看>>
你的第一个Django程序
查看>>
grafana授权公司内部邮箱登录 ldap配置
查看>>
treegrid.bootstrap使用说明
查看>>
[Docker]Docker拉取,上传镜像到Harbor仓库
查看>>
javascript 浏览器类型检测
查看>>
nginx 不带www到www域名的重定向
查看>>
记录:Android中StackOverflow的问题
查看>>
导航,头部,CSS基础
查看>>
[草稿]挂载新硬盘
查看>>
[USACO 2017 Feb Gold] Tutorial
查看>>
关于mysql中GROUP_CONCAT函数的使用
查看>>