你好,我正在sale表中保存一条记录,然后通过用户id,我试图访问我保存的最后一条记录,以获得id,并使用该值保存到另一个表中
但我得到了这个错误:
System.InvalidOperationException: 'The LINQ expression 'DbSet<sale>
.Where(v => v.userId == __idU_0)
.LastOrDefault()' could not be translated. Either rewrite the query in a form that can be translated, or switch to client evaluation explicitly by inserting a call to either AsEnumerable(), AsAsyncEnumerable(), ToList(), or ToListAsync(). See https://go.microsoft.com/fwlink/?linkid=2101038 for more information.'
进行查询以访问最后一条记录的正确方法是什么?
private void button2_Click(object sender, EventArgs e)
{
using (var context = new AppDbContext())
{
sale S = new sale();
V.date = DateTime.Today.Date;
V.userId = dataU.idU;
context.Add(V);
var save = context.SaveChanges();
if( save > 0)
{
var idsale= context.sale.LastOrDefault(x => x.userId == dataU.idU)?.saleId;
MessageBox.Show(""+ idsale);
}
}
EntityFramework自动更新您插入的对象S
的saleId。 你不用去取回它。 你的代码应该是这样的
context.Add(V);
context.SaveChanges();
MessageBox.Show(""+ s.saleId);
context.saveChanges()
根据官方文档返回受影响的行数。 所以,您可以保留对返回值的检查,这不会有什么影响。
context.Add(V);
var save = context.SaveChanges();
if ( save > 0)
{
MessageBox.Show(""+ s.saleId);
}
查看此链接以查看其工作原理https://www.entityframeworktutorial.net/faq/how-to-get-id-of-saved-entity-in-entity-framework.aspx