學習simple.data之高級篇


一、調用存儲過程

1、不帶參數

CREATE PROCEDURE ProcedureWithoutParams
AS 
SELECT * FROM ORDER;

調用db.ProcedureWithoutParams();

2、帶參數

CREATE PROCEDURE ProcedureWithoutParams
@ORDERCODE VARCHAR(MAX)
AS 
SELECT * FROM ORDER WHERE ORDERCODE=@ORDERCODE;

調用db.ProcedureWithoutParams(1);

或者db.ProcedureWithoutParams(ORDERCODE:1);

二、事務

using (var transaction = db.BeginTransaction())
{
   transaction.Users.Insert(Name: "張三", Age: 20);
   transaction.Commit();
}

三、分頁

1、獲取多條數據,沒有跳過數據

IEnumerable<dynamic> q = db.Order.All().Take(10).ToList<dynamic>();

2、跳過多條記錄返回多條數據

IEnumerable<dynamic> q = db.Order.All().Skip(10).Take(10).ToList<dynamic>();

 

四、Simple.Data.Oracle使用心得

1、Sequence使用

db.Customer.Insert(CustomerId:Sequence.Next("Customers_SEQ"));

加入CustomerId作為Order的外鍵,新增時需要獲取到生成的Sequence賦值給Order

using (var tx = db.BeginTransaction())
{
db.Customer.Insert(CustomerId:Sequence.Next("Customers_SEQ"));
db.Order.Insert(CustomerId:Sequence.Current("Customers_SEQ"));
tx.Commit();
}

 

2、存儲過程調用

目前是不支持游標返回

create or replace PROCEDURE ORDERCOUNTBYFACTORYNAME(V_FACTORYNAME  IN VARCHAR,V_COUNT OUT NUMBER) 
ISbegin select COUNT(*) INTO V_COUNT FROM ORDER O INNER JOIN ORDERDETAIL OD on O.PKID= OD.ORDERID WHERE O.FACTORYNAME = V_FACTORYNAME ;end ORDERCOUNTBYFACTORYNAME;

調用方法是由:包頭名稱+__+存儲過程名稱組成

var result = db.PKG__ORDERCOUNTBYFACTORYNAME("SO20140917");
var count = result.OutputValues["V_COUNT "];

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM