博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Entity Framework Code First执行SQL语句、视图及存储过程
阅读量:7005 次
发布时间:2019-06-27

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

2、Entity Framework Code First执行SQL语句

  在使用Entity Framework Code First时,当需要直接执行SQL时,可以使用SqlQuery方法。SqlQuery方法采用属性名即列名的方法进行映射查询,要求返回的查询结果均有完全对应的类属性。

  1>、已定义的表映射类查询

using (var ctx = new PortalContext()){    var provincelist = ctx.Provinces.SqlQuery("SELECT TOP 10 * FROM Province");    foreach (var province in provincelist)    {        Console.WriteLine("{0}-{1}-{2}", province.ProvinceID, province.ProvinceNo, province.ProvinceName);    }}

  2>、未有定义表的临时SQL语句查询

  示例:需要查询Province表中的ProvinceNo,ProvinceName,首先定义一个临时类TempProvince.cs:

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Portal.Models{    public class TempProvince    {        public string ProvinceNo { get; set; }        public string ProvinceName { get; set; }    }}

  执行SQL语句查询:

using (var ctx = new PortalContext()){    var provincelist = ctx.Database.SqlQuery
("SELECT TOP 10 ProvinceNo,ProvinceName FROM Province"); foreach (var province in provincelist) { Console.WriteLine("{0}-{1}", province.ProvinceNo, province.ProvinceName); }}

3、Entity Framework Code First执行存储过程

  Entity Framework Code First执行存储过程同样是使用SqlQuery方法。

  创建存储过程:

CREATE PROCEDURE GetCityByProvinceID(    @ProvinceID INT)AS    SELECT * FROM City    WHERE ProvinceID = @ProvinceID

  执行存储过程:

using (var ctx = new PortalContext()){    var cityList = ctx.Cities.SqlQuery("dbo.GetCityByProvinceID @p0", 3);    foreach (var city in cityList)    {        Console.WriteLine("{0}-{1}-{2}-{3}", city.CityID, city.ProvinceID, city.CityNo, city.CityName);    }}

  存储过程多个输入参数:

var country = "Australia";var keyWords = "Beach, Sun";var destinations = context.Database.SqlQuery
("dbo.GetDestinationSummary @p0, @p1", country, keyWords);

 

转载地址:http://emutl.baihongyu.com/

你可能感兴趣的文章