Linq to MySQL 存储的使用

谁都会走 提交于 2020-01-10 10:42:01

下面主要介绍 Linq to MySQL (ALinq for MySQL),如果你还不知道 ALinq 是什么,请点击这里。 

完整的 Sample 位于 ALinq 的安装目录下的子目录 Samples\CSharpe\OracleSamples.zip 或 Samples\VB\OracleSamples.zip 。

Sample 的使用:打开该工程,然后运行 Sample3_StoreProcedure ,然后点击 Create Procedure 按钮创建存储过程。

 

示例1:

步骤一:在数据库中创建存储过程,下面这个存储过程是用来添加一个 Category 到数据库中。

CREATE PROCEDURE ADD_CATEGORY(IN CATEGORY_NAME VARCHAR(30), IN CATEGORY_DESCRIPTION TEXT)BEGININSERT INTO CATEGORIES (CategoryName, Description)Values (category_name, category_description);END

步骤二:将存储过程映射到 DataContext 实体类中的方法函数。

[Function(Name = "ADD_CATEGORY")]public void AddCategory(    [Parameter(Name = "CATEGORY_NAME")]        string name,    [Parameter(Name = "CATEGORY_DESCRIPTION")]        string description){    ExecuteMethodCall(this, (MethodInfo)MethodBase.GetCurrentMethod(), name, description);}

步骤三:调用方法函数

var db = CreateDatabaseInstance();db.AddCategory(txtCategoryName.Text, "Description");

 

示例二:

步骤一:创建存储过程,下面这个存储过程,是用来获取 Categories 的数量,并赋值给 RETURN_VALUE 参数。

CREATE PROCEDURE GET_CATEGORIES_COUNT(OUT RETURN_VALUE INT)BEGINSELECT COUNT(*) INTO RETURN_VALUEFROM CATEGORIES;END

步骤二:将存储过程映射到 DataContext 实体类中的方法函数。由于存储过程中的 RETURN_VALUE 参数为 out,因此,和该参数对应的,方法函数( GetCategoriesCount ) 中的 count 参数也应该设为 out 。 

[Function(Name = "GET_CATEGORIES_COUNT")]public void GetCategoriesCount(    [Parameter(Name = "RETURN_VALUE")]        out int count){    count = 0;    var result = ExecuteMethodCall(this, (MethodInfo)MethodBase.GetCurrentMethod(), count);    count = (int)result.GetParameterValue(0);}

步骤三:调用方法函数

int count;db.GetCategoriesCount(out count);

 

示例三:

步骤一:在数据库中创建如下存储过程,该存储过程是通过 CATEGORY_ID 来获得 Categry 记录中的 CategoryName,并且值赋给 RETURN_VALUE 参数 。

CREATE PROCEDURE GET_CATEGORY_NAME(CATEGORY_ID INT, OUT RETURN_VALUE VARCHAR(30))BEGINSELECT CATEGORYNAME INTO RETURN_VALUEFROM CATEGORIESWHERE CATEGORYID = CATEGORY_ID;END

步骤二:将存储过程映射到 DataContext 实体类中的方法函数。

[Function(Name = "GET_CATEGORY_NAME")]public void GetCategoryName(    [Parameter(Name = "CATEGORY_ID")]        int id,    [Parameter(Name = "RETURN_VALUE")]        out string name){    name = null;    var result = ExecuteMethodCall(this, (MethodInfo)MethodBase.GetCurrentMethod(), id, name);    name = (string)result.GetParameterValue(1);}

步骤三:调用方法函数

string name;db.GetCategoryName(Convert.ToInt32(txtCategorID.Text), out name);
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!