读书人

新手有关问题,想直接使用LINQ操作SQL

发布时间: 2012-12-28 10:29:05 作者: rapoo

新手问题,想直接使用LINQ操作SQL Server ,不想创建LINQ to SQL类,怎样实现,高手给点小例子
新手问题,想直接使用LINQ操作SQL Server ,不想创建LINQ to SQL类,怎样实现,高手给点小例子
1/ 我刚开始接触LINQ,发现要使用LINQ 操作数据库都要建个LINQ to SQL对应表的类文件和对象,那我有10个没关系型的数据 表,不是要建10这种文件,
2/能不能直接使用LINQ直接操作对应的数据表?这个是重点,如果能这样那就不用10类文件了,


[最优解释]
Linq to Entity?
自己会生成edmx文件的,不需要你手动
[其他解释]
你可以使用第三方工具,比如LinqPad
下载地址见此帖:
http://topic.csdn.net/u/20101111/09/ea049af5-d079-4a13-8c1d-e1a3350a830d.html

ps:VS已经提供了自动映射linq to sql 的dbml文件,拖一下就是了
[其他解释]
使用EF的CodeFirst,或者使用PDF.NET,它的OQL更接近于SQL。
[其他解释]
用Linq to Entities 就好了....

[其他解释]

引用:
Linq to Entity?
自己会生成edmx文件的,不需要你手动

手动没关系,主要能在一个类里面直接操作到一个表或者表对象
如:
var query = from a in article let exclude = new int[] { 12, 23, 23, 26 }
where !exclude.Contains(a.articleid)
orderby articleDt descending
select a;

article 能同一个类的对象,而这个类没有其它文件相铺生成它,最希望他是一个数据库表, 像SELECT * FROM DirectoryTree 中的DirectoryTree ,能不能这样,这样可能我新手测试不到
[其他解释]
说白了就是想使用LINQ 而不想使用它的LINQ to SQL
[其他解释]
引用:
你可以使用第三方工具,比如LinqPad
下载地址见此帖:
http://topic.csdn.net/u/20101111/09/ea049af5-d079-4a13-8c1d-e1a3350a830d.html

ps:VS已经提供了自动映射linq to sql 的dbml文件,拖一下就是了


不使用自动映射linq to sql 的dbml文件,直接创建对象行不行?就是不想要dbml这个文件,但我测试不通过
[其他解释]
不 行
[其他解释]
谢谢大家,明白了
[其他解释]
操作sql 不用Linq2SQL 那就别用LINQ 了
[其他解释]
之前是一直都是使用SqlHelper,然后就直接上SQL语句了,后来听说LINQ 好用,想了解下,要是一定要创建个dbml,那关系太多太复杂的SQL语句不是很不方便,不如直接SQL语句到SqlHelper使用,修改也方便
[其他解释]
引用:
之前是一直都是使用SqlHelper,然后就直接上SQL语句了,后来听说LINQ 好用,想了解下,要是一定要创建个dbml,那关系太多太复杂的SQL语句不是很不方便,不如直接SQL语句到SqlHelper使用,修改也方便

反正不用手写,不是挺方便的么
[其他解释]
引用:
引用:
之前是一直都是使用SqlHelper,然后就直接上SQL语句了,后来听说LINQ 好用,想了解下,要是一定要创建个dbml,那关系太多太复杂的SQL语句不是很不方便,不如直接SQL语句到SqlHelper使用,修改也方便

反正不用手写,不是挺方便的么

不觉得,可能可读和代码效率些,那就不知了
[其他解释]
该回复于2012-10-31 10:11:01被版主删除
[其他解释]
该回复于2012-10-31 10:11:02被版主删除
------其他解决方案--------------------



帮看看上面的事务,会出现并行事务出错,这个这个循环操作的事务要怎样操作的,
[其他解释]

引用:
引用:
帮看看上面的事务,会出现并行事务出错,这个这个循环操作的事务要怎样操作的,

一个连接只支持一个事务


我要实现循环插入动作,使用Linq to Sql 怎样操作?当循环其它一记录出错实现全程回滚
[其他解释]
引用:
帮看看上面的事务,会出现并行事务出错,这个这个循环操作的事务要怎样操作的,


一个连接只支持一个事务
[其他解释]
代码改成,
  public void AddMouldMasert(DataTable dt)
{
using (TransactionScope Tan = new TransactionScope())
{
try
{
foreach (DataRow dr in dt.Rows)
{
MouldMaster obj = new MouldMaster
{
#region Parameter
FTYMouldNo = Convert.ToString(dr["FTYMouldNo"]),
BXMouldNo = Convert.ToString(dr["BXMouldNo"]),
CustomerID = Convert.ToString(dr["CustomerID"]),
MouldType = Convert.ToString(dr["MouldType"]),
MouldSize = Convert.ToString(dr["MouldSize"]),
MachineModel = Convert.ToString(dr["MachineModel"]),
MouldName = Convert.ToString(dr["MouldName"]),
Cycle = Convert.ToInt32(dr["Cycle"]),
DegradedmaterialProportion = Convert.ToDecimal(dr["DProportion"]),


GrossWeight = Convert.ToDecimal(dr["GrossWeight"]),
LifetimeQty = Convert.ToInt32(dr["LifetimeQty"]),
AnticipatedQty = Convert.ToInt32(dr["AnticipatedQty"]),
RawNo = Convert.ToString(dr["RawNo"]),
RawName = Convert.ToString(dr["RawName"]),
PigmentNo = Convert.ToString(dr["PigmentNo"]),
PigmentName = Convert.ToString(dr["PigmentName"]),
Remarks = Convert.ToString(dr["Remarks"]),
Rev = Convert.ToInt32(dr["Rev"]),
Status = Convert.ToInt32(dr["Status"]),
RecordStatus = Convert.ToInt32(dr["RecordStatus"]),
CreatedBy = Convert.ToString(dr["CreatedBy"]),
Rdate = Convert.ToDateTime(dr["Rdate"]),
Company = Convert.ToString(dr["Company"]),
CustomerName = Convert.ToString(dr["CustomerName"]),
ActualQty = Convert.ToInt32(dr["ActualQty"])
#endregion
};
dbLinq.MouldMasters.InsertOnSubmit(obj);


dbLinq.SubmitChanges();
}
Tan.Complete();

}
catch(Exception ex)
{
throw new ApplicationException(ex.Message);
}
}
}


就可以回滚了

读书人网 >.NET

热点推荐