实体框架向POCO发布关系

时间:2013-03-09 18:29:12

标签: c# entity-framework

我使用mvc4在实体框架上有一个C#程序。

我想知道是否有可能(我确信这是可能的)让C#自动将帖子绑定到具有关系的对象。

Ex:我有一个Item类,它与User类有关系:

public class Item
{
    public int ItemId{get;set;}
    public string Name{get;set;}

    public virtual User Owner{get;set;}
}

我有一个带有post方法的ItemController:

public class ItemController
{
    ...
    public HttpResponseMessage PostItem(Item item)
    {
         ....
    }
}

发布和动态绑定如何与具有关系的类一起使用?

1 个答案:

答案 0 :(得分:1)

是的,这是可能的。但是你永远不应该(好吧,几乎从不)直接发布到EF模型。原因很多,但安全性很高,但可维护性和(例如关注点分离)也非常高。

这怎么可能是安全问题?假设您的用户属性有一个字段“IsAdmin”,即使您在视图中没有任何IsAdmin参考,恶意用户也可以发布一个真实的Owner.IsAdmin,如果您保存SaveChanges,您的用户现在是管理员。 / p>

是的,确实如此,您的应用可能无法正常运行。但其他细节可能被黑客入侵,密码可能被更改,或者其他任何可能的恶意方式。

通常,不要将数据模型直接传递给视图。使用中间视图模型,仅复制授权值,并且只在视图模型中具有视图所需的字段。