保存数据后在 entity framework 6 中获取范围 ID
get Scope ID in entity framework 6 after saving data
我已经在数据访问层之上实现了存储库模式和工作单元。我在通用存储库中拥有所有 crud 操作,但在工作单元中保存方法。在我的业务中 class 我正在将对象传递给泛型 class,然后是工作单元中的 Save 方法,我的问题是如何从这一点向前获取范围 ID
基本上我需要在保存后获取对象的 ID,我不知道什么是对象 ID 名称,因为我使用通用 class 来保存数据
public class GenericRepository<TEntity> : IGenericRepository<TEntity> where TEntity : class
{
protected DbSet<TEntity> _DbSet;
private readonly DbContext _dbContext;
public GenericRepository()
{ }
public GenericRepository(DbContext dbContext)
{
this._dbContext = dbContext;
_DbSet = _dbContext.Set<TEntity>();
}
public void InsertEntity(TEntity obj)
{
_DbSet.Add(obj);
}
}
...
public class FunctionsNavigation_UnitOfWork : IDisposable
{
private FunctionContext _FunctionContext = new FunctionContext();
uow.Qualification_FeeSchemeRepository.InsertEntity(obj);
}
}
public void Save()
{
_FunctionContext.Database.Log = s => System.Diagnostics.Debug.WriteLine(s);
_FunctionContext.SaveChanges();
}
在后续业务中 class 保存后我尝试获取对象的 ID 但我没有得到任何东西
_uof.Sys_Nav_Functions_Repository.InsertEntity(_Sys_Nav_FunctionEntity);
_uof.Save();
_FunctionID = _obj.Sys_Nav_Function.Function_ID;
You will get the inserted Id
at the object itself.
private FunctionContext _FunctionContext = new FunctionContext();
var obj = new yourEntity();
uow.Qualification_FeeSchemeRepository.InsertEntity(obj);
uow.Save();
将数据保存到数据库后。实体框架将填充从数据库生成的实体类型 PK。
总之你到了这里
int id = obj.Id;
更新插入1:1关系样本
Person person = new Person//create person entity
{
FirstName = "Eldho",
LastName = "Abe",
};
AuthorizedUser user = new AuthorizedUser//create authorized user role entity
{
Person = person, //The reference of newly inserted user
UserId = myUserid,
HashedPassword = password,
};
uow.PersonDA.Insert(person);
uow.AuthorizedUserDA.Insert(user);
uow.Save();//insert to database
我已经在数据访问层之上实现了存储库模式和工作单元。我在通用存储库中拥有所有 crud 操作,但在工作单元中保存方法。在我的业务中 class 我正在将对象传递给泛型 class,然后是工作单元中的 Save 方法,我的问题是如何从这一点向前获取范围 ID
基本上我需要在保存后获取对象的 ID,我不知道什么是对象 ID 名称,因为我使用通用 class 来保存数据
public class GenericRepository<TEntity> : IGenericRepository<TEntity> where TEntity : class
{
protected DbSet<TEntity> _DbSet;
private readonly DbContext _dbContext;
public GenericRepository()
{ }
public GenericRepository(DbContext dbContext)
{
this._dbContext = dbContext;
_DbSet = _dbContext.Set<TEntity>();
}
public void InsertEntity(TEntity obj)
{
_DbSet.Add(obj);
}
}
...
public class FunctionsNavigation_UnitOfWork : IDisposable
{
private FunctionContext _FunctionContext = new FunctionContext();
uow.Qualification_FeeSchemeRepository.InsertEntity(obj);
}
}
public void Save()
{
_FunctionContext.Database.Log = s => System.Diagnostics.Debug.WriteLine(s);
_FunctionContext.SaveChanges();
}
在后续业务中 class 保存后我尝试获取对象的 ID 但我没有得到任何东西
_uof.Sys_Nav_Functions_Repository.InsertEntity(_Sys_Nav_FunctionEntity);
_uof.Save();
_FunctionID = _obj.Sys_Nav_Function.Function_ID;
You will get the inserted
Id
at the object itself.
private FunctionContext _FunctionContext = new FunctionContext();
var obj = new yourEntity();
uow.Qualification_FeeSchemeRepository.InsertEntity(obj);
uow.Save();
将数据保存到数据库后。实体框架将填充从数据库生成的实体类型 PK。
总之你到了这里
int id = obj.Id;
更新插入1:1关系样本
Person person = new Person//create person entity
{
FirstName = "Eldho",
LastName = "Abe",
};
AuthorizedUser user = new AuthorizedUser//create authorized user role entity
{
Person = person, //The reference of newly inserted user
UserId = myUserid,
HashedPassword = password,
};
uow.PersonDA.Insert(person);
uow.AuthorizedUserDA.Insert(user);
uow.Save();//insert to database