在您Controller
按照以下方式为自己定义一个存储库:
public class CompanyController : ApiController
{
private readonly CompanyRepository _companyRepository;
public CompanyController()
{
_companyRepository= new CompanyRepository(User);
}
[HttpPost]
public Company PostCompany(Company comp)
{
_companyRepository.SmartAdd(comp);
}
}
使用以下定义定义存储库:
public class CompanyRepository : EFContextProvider<CompanyContext>
{
// Fields which can be used for security within the repository.
public IPrincipal User { get; private set; }
public string UserName { get; set; }
public CompanyRepository (IPrincipal user)
{
User = user;
UserName = user.Identity.Name;
}
public DbQuery<Object> SmartAdd(Object obj)
{
switch (obj.GetType)
{
case "": // TODO...
Context.Company.UsersCompany.Add(UserCompany);
break;
default:
break;
}
}
必须进行一些调整以适应您自己的需求,但这是一般的想法。
尽管在 switch 中可能存在很多情况,但我假设您无论如何都会进行对象验证和其他事情,因此您也可以在这里轻松地做到这一点。
相关链接: