Linq to sql 如何使用linq to sql读取和插入数据库? 我首先从数据库中读取一组数据 使用同一表中的相同数据插入新记录
我试过了,但是:-Linq to sql 如何使用linq to sql读取和插入数据库? 我首先从数据库中读取一组数据 使用同一表中的相同数据插入新记录,linq-to-sql,Linq To Sql,我试过了,但是:- using (var db = new DataContext(ConfigurationManager.ConnectionStrings["DB"].ToString())) { var items = from t in db.Table1 where t.ID.Equals(100) select t; foreach (var item in items) {
using (var db = new
DataContext(ConfigurationManager.ConnectionStrings["DB"].ToString()))
{
var items = from t in db.Table1
where t.ID.Equals(100)
select t;
foreach (var item in items)
{
using (var db1 = new
DataContext(ConfigurationManager.ConnectionStrings["DB"].ToString()))
{
Table1 tab = new Table1
{
FName = item.FName,
LName = item.LName,
Number = item.Number,
};
db1.Table1.InsertAllOnSubmit(tab);
db1.SubmitChanges();
}
}
}
我不能编译它。它在第“db1.Table1.InsertAllOnSubmit(tab)”行抛出此错误:-
'System.Data.Linq.Table.InsertAllOnSubmit(System.Collections.Generic.IEnumerable)'
无法从用法推断。尝试指定类型参数
明确地说
你的代码有一些缺陷 您似乎阅读了一个表1(假设id是唯一的),但您将其视为一个集合 快速尝试,因为您一次只添加一个table1:Replace
db1.Table1.InsertAllOnSubmit(tab);
借
如果您的ID不唯一,请尝试:
List<Table1> items = (from t in db.Table1
where t.ID.Equals(100)
select t).ToList();
如果您100%确定您的id将始终匹配use.Single()而不是.SingleOrDefault()。如果没有匹配的结果,Single将抛出异常。在这种情况下,SingleOrDefault返回NULL。但问题出在哪里?我已经更新了我的问题。请检查ID是否是唯一的主键。从InsertALLONSubmit更改为InsertOnSubmit,我可以编译它。但我想知道我是否需要foreach循环,因为ID是唯一的,所以我总是只返回一条记录
List<Table1> items = (from t in db.Table1
where t.ID.Equals(100)
select t).ToList();
using (var db = new
DataContext(ConfigurationManager.ConnectionStrings["DB"].ToString()))
{
Table1 thisTable = (from t in db.Table1
where t.ID. == 100
select t).SingleOrDefault();
if ( thisTable != null)
{
Table1 tab = new Table1 ()
{
FName = item.FName,
LName = item.LName,
Number = item.Number, };
db.Table1.InsertOnsubmit(tab)
db.SubmitChanges();
}
}
}