C# 在业务层中插入/更新/删除EF
我不能接受我们需要在所有POCO/bl对象中重新创建插入/更新/删除功能的想法?EF和linq2sql本身就有这样好的内置功能 你们如何有效地解决这个问题?在IQueryable POCO中使用基类或某些魔法C# 在业务层中插入/更新/删除EF,c#,.net,entity-framework,C#,.net,Entity Framework,我不能接受我们需要在所有POCO/bl对象中重新创建插入/更新/删除功能的想法?EF和linq2sql本身就有这样好的内置功能 你们如何有效地解决这个问题?在IQueryable POCO中使用基类或某些魔法 .NET 4由于实体框架/Linq对象可能是从某个基类继承的,因此您可以从单个基类继承业务层中的对象。然后像这样做: public class BusinessBaseCollection { protected EFBaseCollection _efObject = null;
.NET 4由于实体框架/Linq对象可能是从某个基类继承的,因此您可以从单个基类继承业务层中的对象。然后像这样做:
public class BusinessBaseCollection
{
protected EFBaseCollection _efObject = null;
public BusinessBaseCollection(EFBaseCollection efObject)
{
_efObject = efObject;
}
public Add(BusinessBase obj)
{
_efObject.Add(obj);
}
//Add other CRUD stuff here
}
我觉得这很有趣。正如你所说。这些方法已经存在了,我不明白我们为什么要重做它们。尽管如此,我所有针对EF的智能BL的尝试都是非常不清楚和狡猾的。一个非常可怕的结果是,当我尝试这样一个基本对象时,我必须将数据层程序集引用到应用程序中(如您上面所建议的)。我是不是遗漏了一些基本的东西?为什么业务部门不能把这一点牢记在心呢?只有正常情况下,如果您以某种形式使用EF基类,那么您需要引用它的程序集。没有?至于必须重做,那对你来说是分层的。每次更改都需要重复x次。干的就这么多。然而,使用实体框架,您可以更多地控制(使用T4)并可能从一些中心基类派生。所有这些都是“如果,也许”,谢谢。除此之外我什么都不能做,但我对此不太满意。如果所有的业务层都告诉我“嗨,应用程序X!我明白了。我给了你paket,但你必须自己从DAL那里得到它,那么为什么我要创建一个与业务层对话的解决方案呢?”。一定要有工作吗?