ASP.NET MVC 的 OData 实现

发布于 2024-09-27 02:47:47 字数 263 浏览 4 评论 0原文

我们有一个使用 ASP.NET MVC2 实现的相当直接的业务应用程序,并且我们有一个新的要求,即能够与业务的其他部分(包括 SharePoint 2010、Ruby 和 Python)共享我们的数据。

我想使用我们现有的 MVC 应用程序使用 OData 作为传输机制(而不是 SOAP)。我很难找到任何人提到 MVC 的 OData 提供程序的实现。

您能否建议我如何开始滚动我自己的 OData ASP.NET MVC 提供程序,或者将我指向可能已经开始类似操作的某个地方?

We have a fairly straight forward line of business application implemented with ASP.NET MVC2 and we have a new requirement to be able to share our data with other parts of the business, which include SharePoint 2010, Ruby and Python.

I'd like to use OData as the transport mechanism (as opposed to SOAP) using our existing MVC application. I'm struggling to find anyone mentioning an implementation of an OData provider for MVC.

Can you suggest either how I might be able to start rolling my own OData ASP.NET MVC provider or point me to somewhere which might have already started something similar?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

计㈡愣 2024-10-04 02:47:47

带有 MVC 的 OData 非常容易使用 MVC Web API 进行设置和使用。

例如,您的 OData 控制器将如下所示:

public class ProductController : EntitySetController<Product, int>
{
    private readonly IUnitOfWork _unitOfWork;

    public ProductController(IUnitOfWork unitOfWork)
    {
        _unitOfWork = unitOfWork;
    }

    public override IQueryable<Product> Get()
    {
        return _unitOfWork.Repository<Product>().Query().Get();
    }

    protected override Product GetEntityByKey(int key)
    {
        return _unitOfWork.Repository<Product>().FindById(key);
    }

    protected override Product UpdateEntity(int key, Product update)
    {
        update.State = ObjectState.Modified;
        _unitOfWork.Repository<Product>().Update(update);
        _unitOfWork.Save();
        return update;
    }

    public override void Delete([FromODataUri] int key)
    {
        _unitOfWork.Repository<Product>().Delete(key);
        _unitOfWork.Save();
    }

    protected override void Dispose(bool disposing)
    {
        _unitOfWork.Dispose();
        base.Dispose(disposing);
    }
}

可以在此处查看详细的演练:http://blog.longle.net/2013/06/18/mvc-4-web-api- odata-entity-framework-kendo-ui-grid-datasource-with-mvvm/

OData with MVC is extremely easy to getup and going with MVC Web API.

e.g. Your OData controller would look like this:

public class ProductController : EntitySetController<Product, int>
{
    private readonly IUnitOfWork _unitOfWork;

    public ProductController(IUnitOfWork unitOfWork)
    {
        _unitOfWork = unitOfWork;
    }

    public override IQueryable<Product> Get()
    {
        return _unitOfWork.Repository<Product>().Query().Get();
    }

    protected override Product GetEntityByKey(int key)
    {
        return _unitOfWork.Repository<Product>().FindById(key);
    }

    protected override Product UpdateEntity(int key, Product update)
    {
        update.State = ObjectState.Modified;
        _unitOfWork.Repository<Product>().Update(update);
        _unitOfWork.Save();
        return update;
    }

    public override void Delete([FromODataUri] int key)
    {
        _unitOfWork.Repository<Product>().Delete(key);
        _unitOfWork.Save();
    }

    protected override void Dispose(bool disposing)
    {
        _unitOfWork.Dispose();
        base.Dispose(disposing);
    }
}

A detailed walk-through can be seen here: http://blog.longle.net/2013/06/18/mvc-4-web-api-odata-entity-framework-kendo-ui-grid-datasource-with-mvvm/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文