C# 使用lambda表达式以通用形式更新表记录
这是我的代码,它成功地更新了C# 使用lambda表达式以通用形式更新表记录,c#,linq,lambda,C#,Linq,Lambda,这是我的代码,它成功地更新了tableBrand表的记录,但我想以更规范的形式更新我的记录 public bool Update(tableBrand brand) { if (brand == null) { throw new ArgumentNullException("brand"); } tableBrand tmpBrand = Get(brand.BrandID); if (tmpBrand
tableBrand
表的记录,但我想以更规范的形式更新我的记录
public bool Update(tableBrand brand)
{
if (brand == null)
{
throw new ArgumentNullException("brand");
}
tableBrand tmpBrand = Get(brand.BrandID);
if (tmpBrand != null)
{
tmpBrand.BrandName = brand.BrandName;
plaDatabaseEntities.SaveChanges();
}
return true;
}
注意:这里只有两列BrandName和BrandID,所以我们可以正常更新它 一个表中有25列,那么我们必须手动为每一列赋值。但我不想像上面那样更新我的表记录。我想更新表记录 如下面的代码和说明所示。这里
Get(brand.BrandID)
返回tableBrand的对象
public bool Update(tableBrand brand)
{
if (brand == null)
{
throw new ArgumentNullException("brand");
}
tablebrand tmpbrand = Get(brand.brandID);
if (tmpbrand != null)
{
tmpbrand = brand;
plaDatabaseEntities.SaveChanges();
}
return true;
}
正如我所知,若我们想要更新表的任何记录,那个么我们必须有那个记录id来触发查询并从数据库中获取数据。在上面的代码中,我能够使用brand.brandID从数据库中获取记录。但是在这里我想分配tmpbrand对象,比如tmpbrand=brand代码>如上所述,但当时的问题是tmpbrand
在这里被过度写入,有些我无法以上述方式更新我的记录
我希望有一种lambda表达式的方法,如果我们得到brand
对象的所有字段,除了brandID
之外,并将所有字段分配给tmpbrand
除了brandID
之外,那么我可以解决这个问题,但我没有得到它的答案:如何从brand
对象获得所有字段,除了brandID
并使用lambda表达式或Linq将所有字段分配给tmpbrand
,除了brandID
如果有人能解决这个问题,请帮助我…我不是Linq To Sql的专家,但我认为您有两种选择:
当调用Update方法时,brand对象仍然附加到数据上下文。如果为true,则不必将其值复制到另一个对象。LINQtoSQL为您跟踪更改。另见此
调用更新方法时,品牌对象未附加到数据上下文。在这种情况下,您必须使用方法,然后保存更改。同样,您不必将值从一个对象复制到另一个对象。另见此
品牌对象是如何创建的?您是从数据库中读取的吗?如果是,如何读取?brand是tableBrand的对象。tableBrand是您创建的类还是由Visual Studio自动生成的?它是由Visual Studio自动生成的