gpt4 book ai didi

breeze - 限制在 Breeze.js 中创建新实体

转载 作者:行者123 更新时间:2023-12-02 22:15:54 25 4
gpt4 key购买 nike

假设我想使用 Breeze 创建一个任务实体(我正在使用 EF),但是因为这是一个真实任务应用程序,所以该任务必须关联到当前登录的用户.任务具有需要在保存期间填充的 UserId 外键,这就是我遇到的问题。在主要是客户端的应用程序中执行此操作对我来说是一个陌生的概念。我不能很好地在客户端指定 UserId 外键,因为我不希望聪明的用户可能为另一个用户创建任务。我应该在哪里 Hook 到保存过程以使用当前登录的用户(在本例中为 System.Web.HttpContext.Current.User.Identity.Name)填充 UserId FK。

随时向我指出另一篇文章或文档的方向。正如我所说,这对我来说是一个新概念,所以我真的不知道要搜索什么。

无论谁回答这个问题,我全心全意地爱你。 :)

最佳答案

查看 Breeze 网站上关于 Custom EFContextProvider's Save Interceptor 的文档.您将需要创建自己的提供程序并实现 BeforeSaveEntity 方法。在该方法中,您可以像使用 MVC4 一样将任务的 UserId 设置为当前用户。

public class TasksContextProvider: EFContextProvider<YourExistingDbContext>  
{

public override bool BeforeSaveEntity(EntityInfo entityInfo)
{
if (entityInfo.Entity.GetType() == typeof(YourTask)
&& entityInfo.EntityState == EntityState.Added)
{
// add your logic here to set the user and/or do validation
}
}

}

关于breeze - 限制在 Breeze.js 中创建新实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14470132/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com