返回一个EntityObject来使用

时间:2012-11-26 14:41:40

标签: entity-framework

我不确定我是否应该直接使用EntityObject,或者我是否应该使用som包装器方法来选择,更新和删除EntityObjects?我想使用最后一个选项,但我无法弄清楚如何返回EntityObject(所以我仍然可以调用context.SaveChanges();)而不是例如List<Worker>(其中是愚蠢的,因为我不能对列表中的Workers进行更改,然后轻松地将chages提交到数据库。

例如,我有一个Worker表。我可以通过使用我的上下文找到一个工人:

var worker = context.Worker.Where(w => w.WorkerID == 1).FirstOrDefault();

或者,我可以创建一个包装器方法:

public static RETURNTYPE GetWorkerByID(int id, context)
{
    var worker = context.Worker.Where(w => w.WorkerID == 1).FirstOrDefault();
    return worker;
}

如果我仍然希望使用上下文(允许我更改数据),我应该使用哪种类型的返回类型?

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您创建了一个包装器类型,则将无法再将其与上下文一起使用。使用包装器意味着您的返回类型将表示从实体对象填充的新实例,当您将该实例推回时,您将再次需要创建/填充实体对象以进行处理。

您是否考虑过使用POCO(仅限EF 4.0及更新版本)?这可以解决您的问题,因为有EntityObject基类。