bri*_*nch 7 c# asp.net asp.net-mvc entity-framework unit-of-work
我正在使用 UnitOfWork 模式来抽象我的 Asp.Net 应用程序中的数据库访问。基本上我遵循此处描述的 UnitOfWork 模式方法:
https://chsakell.com/2015/02/15/asp-net-mvc-solution-architecture-best-practices/
但是,我很难理解,我将如何获得新添加项目的 ID。就像我想向我的客户存储库添加新客户一样,我将如何获得客户 ID?问题是Add和Commit是解耦的,直到Commit之后才知道Id。
有没有办法使用 UnitOfWork 模式获取添加项的 id?
我认为没有办法做到这一点,除非您打破模式并传递有关新创建实体的一些额外信息。
由于只有在提交成功后才会分配 Id,并且如果您没有有关创建/更新/删除哪些实体的信息,则几乎不可能知道。
我曾经使用下面的代码做过它(虽然我不推荐它,但我专门用它来满足这个需要)
public string Insert(Person entity)
{
uow.Repository.Add(entity); //public Repository object in unit of work which might be wrong
Response responseObject = uow.Save();
string id = entity.Id; //gives the newly generated Id
return id;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6567 次 |
最近记录: |