[英]How to get index of object in observablecollection passed as parameter
[英]Problems to get the Id of an object passed by parameter
我无法通过参数传递对象的ID。
编码:
private void SetEntityState(TEntity entity, EntityState entityStated)
{
var entry = this.Context.Entry(entity);
if (entry.State == EntityState.Detached)
{
// The problem is here.
TEntity attachedEntity = this.DbSet.Where(
x => x.Id.Equals(entity.Id)
).FirstOrDefault();
if (attachedEntity != null)
{
var attachedEntry = this.Context.Entry(attachedEntity);
attachedEntry.CurrentValues.SetValues(entity);
attachedEntry.State = entityStated;
}
else
{
entry.State = entityStated;
}
}
}
问题在这里:
TEntity attachedEntity = this.DbSet.Where(
x => x.Id.Equals(entity.Id)
).FirstOrDefault();
“实体”的属性“ Id”始终返回0,但在调试中,我看到该值为3。
为什么会这样呢?
尝试这个
TEntity attachedEntity = this.DbSet.Where(x => x.Id == entity.Id).FirstOrDefault();
要么
Int32 entityId = entity.Id;
TEntity attachedEntity = this.DbSet.Where(x => x.Id == entityId).FirstOrDefault();
也许您可以尝试(进行测试):
var entry = Context.Find(entity);
代替
var entry = this.Context.Entry(entity);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.