如何使用类对象将breeze自定义saveChanges添加到api控制器

时间:2013-06-17 06:41:47

标签: breeze

我的微风api控制器就像这样

public HttpResponseMessage CreateUser(class object)
{}

我有一个单独的工作单位来保存变更()由微风完成..

我需要将我的json传递给class object而不是Jobject

这是我的微风savechanges()

var signupDetail = manager.getEntities(entityNames.userdetail);
var resourceDetail = new breeze.SaveOptions({
    resourceName: "CreateUser"
});
return manager.saveChanges(signupDetail, resourseDetail)

它将json作为Jobject savebundle与“entities []和键映射[]”一起发送 由“breeze-debug.js”完成

但我需要它作为我的类对象的“字符串json”

有没有解决方案?

提前致谢

1 个答案:

答案 0 :(得分:0)

你可以直接调用Context的SaveChanges方法,你的问题没有太多的细节,但我会冒险做出一些假设,并尝试回答它,因为今天我遇到了类似的问题。

public class MyContext : DbContext
{
    // ...
}

public class MyRepository
{
    private readonly EFContextProvider<MyContext> _contextProvider;

    public MyRepository()
    {
        _contextProvider = new EFContextProvider<MyContext>();
    }

    public void SaveChanges()
    {
        // Save all changes made in this context to the underlying database
        // this is the method you should call
        _contextProvider.Context.SaveChanges();
    }

    public SaveResult SaveChanges(JObject saveBundle)
    {
        return _contextProvider.SaveChanges(saveBundle);
    }
}

然后你可以在你的控制器中使用这样的东西:

[BreezeController]
public class TaskController : ApiController
{
    private readonly MyRepository _repository;

    public TaskController()
    {
        _repository = new MyRepository();
    }

    public void CreateUser(string className)
    {
        // Create the target object
        // ...

        // Call save changes
        _repository.SaveChanges();
    }
}

希望这有帮助。