110,533
社区成员
发帖
与我相关
我的任务
分享
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
Entities db = new Entities();
//抓取数据
var q = db.Movies.ToList();
Console.WriteLine("EF 通过对象更新=》");
Console.WriteLine("数据总数"+q.Count);
//数据赋值
for (int i = 0; i < q.Count; i++)
{
q[i].Title = i.ToString();
q[i].ReleaseDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
q[i].Genre = i.ToString();
q[i].Price = 10 * i;
q[i].ImageType = 1;
}
//更新
sw.Start();
db.SaveChanges();
sw.Stop();
Console.WriteLine("更新数据:" + sw.ElapsedMilliseconds);
Console.WriteLine("==========================================");
Console.WriteLine("EF 通过sql更新=》");
//更新
sw.Reset();
sw.Restart();
string sql = "update Movies set Title=@title,ReleaseDate=@releaseDate,Genre=@genre,Price=@price,ImageType=imageType where ID=@id";
for (int i = 0; i < q.Count; i++)
{
SqlParameter[] sp = new SqlParameter[6]{
new SqlParameter("title",q[i].Title),
new SqlParameter("releaseDate",q[i].ReleaseDate),
new SqlParameter("genre",q[i].Genre),
new SqlParameter("price",q[i].Price),
new SqlParameter("imageType",q[i].ImageType),
new SqlParameter("id",q[i].ID),
};
db.Database.ExecuteSqlCommand(sql, sp);
}
sw.Stop();
Console.WriteLine("更新数据:" + sw.ElapsedMilliseconds);
Console.WriteLine("==========================================");
Console.WriteLine("sql更新=》");
//更新
sw.Reset();
sw.Restart();
SqlConnection con = new SqlConnection(ConnectionString);
con.Open();
for (int i = 0; i < q.Count; i++)
{
SqlParameter[] sp=new SqlParameter[6]{
new SqlParameter("title",q[i].Title),
new SqlParameter("releaseDate",q[i].ReleaseDate),
new SqlParameter("genre",q[i].Genre),
new SqlParameter("price",q[i].Price),
new SqlParameter("imageType",q[i].ImageType),
new SqlParameter("id",q[i].ID),
};
SqlCommand cmd = new SqlCommand(sql, con);
cmd.Parameters.AddRange(sp);
cmd.ExecuteNonQuery();
}
con.Close();
sw.Stop();
Console.WriteLine("更新数据:" + sw.ElapsedMilliseconds);
Console.ReadKey();
}
public async Task<string> Update(bool input)
{
List<Test> tabale= GetData();
var Start = DateTime.Now;
var query = await _entityTest.GetAllListAsync();//查出实体
int i = 0;
if (input)
{
//*直接再调用Update的仓储方法
//foreach (var t in Tests)
//{
// await _entityTest.UpdateAsync(t);
//}
//*给使用了仓储查询的实体进行更新
foreach(var t in tabale)
{
var result = query.FirstOrDefault(a => a.Id == t.Id);
result.Title = t.Title;
result.CreationTime = t.CreationTime;
result.CreatorUserId = t.CreatorUserId;
result.DeleterUserId = t.DeleterUserId;
result.DeletionTime = t.DeletionTime;
result.IsDeleted = t.IsDeleted;
result.LastModificationTime = t.LastModificationTime;
result.LastModifierUserId = t.LastModifierUserId;
result.TenantId = t.TenantId;
}
}
var End = DateTime.Now;
Console.WriteLine("更新10000条数据,耗时:"+(End - Start).ToString());
return (End - Start).ToString();
}
private List<Test> GetData()
{
List<Test> t = new List<Test>();
for (int i = 0; i < 10000; i++)
{
var temp = new Test();
temp.Id = i+3;
temp.Title = "测试!";
temp.CreatorUserId = 2;
temp.DeleterUserId = 1;
temp.DeletionTime = DateTime.Now;
temp.CreationTime = DateTime.Now;
temp.IsDeleted = false;
temp.LastModificationTime = DateTime.Now;
temp.LastModifierUserId = 2;
temp.TenantId = 3;
t.Add(temp);
}
return t;
}