LINQ TO SQL:直接执行查询和命令
2010-01-03 11:21
344 查看
LINQ TO SQL提供了基于数据库表的强类型访问方式,但仍然有朋友老是说,能不能还是直接编写T-SQL进行查询和操作呢?因为我知道很多之前查询的系统需要支持更加动态化和用户定制化的查询。
答案当然是可以的
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
这里的特殊之处,在于ExecuteQuery返回的仍然是强类型。这没有什么不好。但这一点就要求返回的列必须在实体类中有对应的属性,它会自动反射创建一个类型出来。如果提供的属性不够,则其他的属性会设置为NULL
除了查询,也可以直接调用语句或者存储过程进行操作(INSERT ,UPDATE, DELETE等等)
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
答案当然是可以的
using System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { NorthwindDataContext db = new NorthwindDataContext(); var query = db.ExecuteQuery<Customers>("GetAllCustomers");//直接调用一个存储过程 foreach (var item in query) { Console.WriteLine(item.CustomerID); } var query2 = db.ExecuteQuery<Customers>("SELECT CustomerID FROM Customers");//直接编写一个查询语句 foreach (var item in query2) { Console.WriteLine(item.CustomerID); } var query3 = db.ExecuteQuery<Customers>( "SELECT CustomerID FROM Customers WHERE Country={0}","USA");//传递参数 //注意:这里的参数不是SQLParamter foreach (var item in query3) { Console.WriteLine(item.CustomerID); } } } }
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
这里的特殊之处,在于ExecuteQuery返回的仍然是强类型。这没有什么不好。但这一点就要求返回的列必须在实体类中有对应的属性,它会自动反射创建一个类型出来。如果提供的属性不够,则其他的属性会设置为NULL
除了查询,也可以直接调用语句或者存储过程进行操作(INSERT ,UPDATE, DELETE等等)
db.ExecuteCommand("INSERT INTO Orders VALUES({0},'{1}')", 1, "Test");
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
相关文章推荐
- 直接执行查询和命令(LINQ TO SQL)
- 直接执行查询和命令(LINQ TO SQL)
- LINQ to SQL:如何直接执行SQL语句
- DLINQ(LINQ to SQL)之执行SQL语句的添加、查询、更新和删除
- Hibernate SQLQuery查询返回空List,在mysql命令下直接执行sql语句可以正常得到记录
- LINQ to SQL的执行可能无法复用查询计划
- [转载代码]VB.NET 中查询 Linq to SQL 执行时的SQL语句
- Linq to sql直接执行sql语句
- Linq排序、分组、模糊查询、调用外部方法、直接执行SQL语句、事务、修改数据
- 是否会成为问题——Linq to Sql的执行可能无法复用查询计划
- 步步为营VS 2008 + .NET 3.5(9) - DLINQ(LINQ to SQL)之执行SQL语句的添加、查询、更新和删除
- 9、步步为营VS 2008 + .NET 3.5(9) - DLINQ(LINQ to SQL)之执行SQL语句的添加、查询、更新和删除
- 是否会成为问题——Linq to Sql的执行可能无法复用查询计划
- LINQ to SQL查询和SQL命令
- 简单骗过DataContext,统计Linq to SQL执行查询的次数
- 步步为营VS 2008 + .NET 3.5(9) - DLINQ(LINQ to SQL)之执行SQL语句的添加、查询、更新和删除
- 是否会成为问题——Linq to Sql的执行可能无法复用查询计划
- LINQ to SQL查询和SQL命令
- LINQ to SQL查询和SQL命令
- LINQ to SQL查询和SQL命令