zoukankan      html  css  js  c++  java
  • EF调用存储过程实例

    创建实体:
     1  public class User
     2 {
     3 public string UserID { get; set; }
     4 public string UserName { get; set; }
     5 public string Password { get; set; }
     6 [Description("测试")]
     7 public string UserGroupId { get; set; }
     8 public UserGroup UserGroup { get; set; }
     9 public List<Role> Roles { get; set; }
    10 }
    11  
    12 public class UserGroup
    13 {
    14 public string GroupID { get; set; }
    15 public string GroupName { get; set; }
    16 public List<User> Users { get; set; }
    17 }
    18  
    19 public class Role
    20 {
    21 public string RoleID { get; set; }
    22 public string RoleName { get; set; }
    23 public List<User> Users { get; set; }
    24 }
    2.2、准备SQL数据
    --新增数据
     1 alter PROC createData
     2 @rowNum INT
     3 AS
     4 DECLARE @index INT =1,@id VARCHAR(50)=NEWID()
     5 INSERT dbo.UserGroups
     6 ( GroupID, GroupName )
     7 VALUES ( @id, -- GroupID - nvarchar(128)
     8 N'开发组' -- GroupName - nvarchar(max)
     9 )
    10 WHILE(@index<=@rowNum)
    11 BEGIN
    12 INSERT dbo.Users
    13 ( UserID ,
    14 UserName ,
    15 Password ,
    16 UserGroupId
    17 )
    18 VALUES ( NEWID(),
    19 N'张三' , -- UserName - nvarchar(max)
    20 N'123456' , -- Password - nvarchar(max)
    21 @id -- UserGroupId - nvarchar(128)
    22 )
    23 SET @index=@index+1
    24 END
    --删除数据
    alter PROC DeleteData
    AS
    BEGIN
    TRUNCATE TABLE dbo.Users
    END
    
    --修改数据
    ALTER PROC ModifyData
    @uid VARchar(50),
    @userName varchar(50)
    AS
    BEGIN
    UPDATE dbo.Users SET UserName=@userName WHERE UserID=@uid
    END
    
    --查找数据
    ALTER PROC GetLlist
    @rowNumber int
    AS
    BEGIN
    SELECT * FROM ( SELECT ROW_NUMBER() OVER(ORDER BY UserID) AS ID,* FROM dbo.Users ) AS A WHERE A.ID<=@rowNumber
    END
    
     
    2.3C#代码调用实例
    2.3.1 查询列表
    1 var db = new TestDbContext();
    2 SqlParameter[] parameter = new SqlParameter[1];
    3 parameter[0] = new SqlParameter("@rowNumber", 10);
    4 var users = db.Users.SqlQuery("exec GetLlist @rowNumber", parameter).ToList();
    2.3.2  返回有参数的存储过程
     var db = new TestDbContext();
    int count = db.Database.SqlQuery(typeof(int),"exec ProSelectCount").Cast<int>().FirstOrDefault();
    
     
    2.3.3  增删查改
     
    var db = new TestDbContext();
    SqlParameter[] parameter = new SqlParameter[1];
    parameter[0] = new SqlParameter("@rowNum", 5);
    db.Database.ExecuteSqlCommand("exec CreateData @rowNum", parameter);
     
    
     
     
     
     
  • 相关阅读:
    数据共享之死锁
    响应式菜单制作
    工作日志2014-07-01
    Thinkphp 无法使用-&gt;order() 排序的两种解决的方法!
    C#
    HDU1232 畅通project 并查集
    Cocos2d-x优化中图片优化
    1.3.4 设计并发友好的应用程序
    UIView的层介绍
    《鸟哥的Linux私房菜-基础学习篇(第三版)》(三)
  • 原文地址:https://www.cnblogs.com/yangda/p/4772612.html
Copyright © 2011-2022 走看看