我一直在寻找这个,但我找不到答案。我唯一得到的是 linq 预测,但对此一无所知。
我有一个接收实体框架表参数的函数,可以说“客户”,如下所示:
public partial class customer
{
public customer()
{
}
public int id { get; set; }
public string descripcion { get; set; }
public bool activo { get; set; }
}
...........
public virtual customer Load(customer paramEntity)
{
using (BillingDbContext bd = new BillingDbContext())
{
paramEntity = (from s in bd.customer
select s).First();
}
return paramEntity;
}
注意:First() 仅用于示例,我实际上是使用带有谓词参数的函数来过滤(在哪里)结果
我想要的是,不是从 linq 接收新对象,而是使用 linq 填充我的参数(paramEntity),这样我就不会丢失我的参数引用。
这可能吗?没有将每个属性从一个变量复制到另一个变量?
我为什么要这个?因为当我调用该函数时,我使用了从客户那里继承的类,并且我想稍后覆盖 Load 函数。像这样:
public class customerX : customer
{
public float saldo {get; set;}
}
...........
public override customer Load(customer paramEntity)
{
customerX e = (customerX)base.Load(paramEntity);
e.saldo = SomeFunctionLoadSaldo(e.id);
return e;
}
...........
customerX c = (customerX)Load(new customerX());
注意:如果我不会从一开始就传递继承的类(customerX),那么在“base.Load”中会抛出一个错误,因为它不能从客户转换到客户X。这就是为什么我需要保留我的变量引用。