什么网站做推广农产品比较好,天河做网站,网站开发需要什么人才,怎样推广一个网站ORM是什么#xff1f; 从字面理解#xff0c;O是Object#xff0c;对象#xff1b;R是Relation#xff0c;关系#xff1b;M是Mapping#xff0c;映射。所以#xff0c;用一句话概括就是#xff1a;ORM是一种对象关系映射的技术。 Dapper 是.NET下的一种ORM框架。 Dap…ORM是什么 从字面理解O是Object对象R是Relation关系M是Mapping映射。所以用一句话概括就是ORM是一种对象关系映射的技术。 Dapper 是.NET下的一种ORM框架。 Dapper的安装 使用NuGet安装打开visual studio的项目依次点击工具NuGet包管理器管理解决方案的NuGet程序包再点击浏览搜索dapper点击搜索结果中的Dapper勾选项目选择安装; 在解决方案管理器中点击项目查看引用如果有Dapper说明安装成功。 Dapper的基本用法 首先我们在Model层写一个Person类他有IDNameRemark。 同样我们在数据库也有一个Person表包含idnameremark三个字段其中id是主键自增。 而后我们在DAL层写一个PersonDB类提供对Person的基本访问。connectionString是数据库连接字符串由配置文件读取。 插入操作 将一个对象person插入数据库。插入代码文本如下。Name的意思是自动将person里的Name值绑定上去。 public static int Insert(Person person)
{using (IDbConnection connection new SqlConnection(connectionString)){return connection.Execute(insert into Person(Name,Remark) values(Name,Remark), person);}
} 批量插入 /// summary
/// 批量插入Person数据返回影响行数
/// /summary
/// param namepersons/param
/// returns影响行数/returns
public static int Insert(ListPerson persons)
{using (IDbConnection connection new SqlConnection(connectionString)){return connection.Execute(insert into Person(Name,Remark) values(Name,Remark), persons);}
} 删除操作 public static int Delete(Person person)
{using (IDbConnection connection new SqlConnection(connectionString)){return connection.Execute(delete from Person where idID, person);}
}public static int Delete(ListPerson persons)
{using (IDbConnection connection new SqlConnection(connectionString)){return connection.Execute(delete from Person where idID, persons);}
} 修改操作 public static int Update(Person person)
{using (IDbConnection connection new SqlConnection(connectionString)){return connection.Execute(update Person set namename where idID, person);}
}public static int Update(ListPerson persons)
{using (IDbConnection connection new SqlConnection(connectionString)){return connection.Execute(update Person set namename where idID, persons);}
} 查询操作 /// summary
/// 无参查询所有数据
/// /summary
/// returns/returns
public static ListPerson Query()
{using (IDbConnection connection new SqlConnection(connectionString)){return connection.QueryPerson(select * from Person).ToList();}
}/// summary
/// 查询指定数据
/// /summary
/// param nameperson/param
/// returns/returns
public static Person Query(Person person)
{using (IDbConnection connection new SqlConnection(connectionString)){return connection.QueryPerson(select * from Person where idID, person).SingleOrDefault();}
} Dapper的复杂操作 查询的In操作 /// summary
/// In操作
/// /summary
public static ListPerson QueryIn()
{using (IDbConnection connection new SqlConnection(connectionString)){var sql select * from Person where id in ids;//参数类型是Array的时候dappper会自动将其转化return connection.QueryPerson(sql, new { ids new int[2] { 1, 2 }, }).ToList();}
}public static ListPerson QueryIn(int[] ids)
{using (IDbConnection connection new SqlConnection(connectionString)){var sql select * from Person where id in ids;//参数类型是Array的时候dappper会自动将其转化return connection.QueryPerson(sql, new { ids }).ToList();}
} 多语句操作 为此我们引入以下Book类同样在数据库里设置这个表。 public class Book
{public int ID { get; set; }public int PersonID { get; set; }public string BookName { get; set; }
} /// summary
/// 多语句操作
/// /summary
public static void QueryMultiple()
{using (IDbConnection connection new SqlConnection(connectionString)){var sql select * from Person; select * from Book;var multiReader connection.QueryMultiple(sql);var personList multiReader.ReadPerson();var bookList multiReader.ReadBook();multiReader.Dispose();}
} Join操作 我们是面向对象编程所以一个对象里面会有许多其他子对象这个子对象里面又有其自己的子对象这种关系在数据库里的表示就是外键。比如我们有一本书book它有主人personbook是一个对象主人又是一个对象。 public class BookWithPerson
{public int ID { get; set; }public Person Pers { get; set; }public string BookName { get; set; }
} 我们自然想要一个方法把数据库里复杂的外键关系转成我们需要的对象BookWithPerson所有我们需要的信息都存在里面取数据的时候只要找这个对象取数据就行了比如我们需要一本书的主人的姓名我们只需要bookWithPerson.Pers.Name。如果是一对多的关系我们用数组如果是多对多我们加一层mapping。 现在我们想根据书的ID查询书的信息包括主人信息。 public static BookWithPerson QueryJoin(Book book)
{using (IDbConnection connection new SqlConnection(connectionString)){var sql select b.id,b.bookName,p.id,p.name,p.remarkfrom Person as pjoin Book as bon p.id b.personIdwhere b.id id;;var result connection.QueryBookWithPerson, Person, BookWithPerson(sql,(bookWithPerson, person) {bookWithPerson.Pers person;return bookWithPerson;},book);//splitOn: bookName);return (BookWithPerson)result;}
} 其中Query的三个泛型参数分别是委托回调类型1委托回调类型2返回类型。形参的三个参数分别是sql语句map委托对象参数。所以整句的意思是先根据sql语句查询同时把查询的person信息赋值给bookWithPerson.Pers并且返回bookWithPersonbook是对象参数提供参数绑定的值。 最终整个方法返回BookWithPerson这样我们所需要的所有信息就有了。 ***************************** *** Keep learning and growing. *** ***************************** 转载于:https://www.cnblogs.com/gangle/p/9287082.html