C# asp.net webforms应用程序的实体框架最佳实践

C# asp.net webforms应用程序的实体框架最佳实践,c#,asp.net,linq,entity-framework,3-tier,C#,Asp.net,Linq,Entity Framework,3 Tier,我正在.net framework 4.0上构建asp.net应用程序,我将使用Linq to entities(实体框架)作为我的数据模型(DAL),我的设计模式将是3层,其中实体框架将是DAL层 我的问题是,我应该为我的表设置一个BLL层,以便我从表示层(我的页面)处理它,我从中调用我的选择、插入、更新和删除函数,还是最好直接在表示层中调用实体框架?这取决于应用程序;层不是因为好而定义的,层是因为需要而定义的 如果您的应用程序很大,而且业务规则经常会更改,那么就构建一个BLL层。否则,我认为

我正在.net framework 4.0上构建asp.net应用程序,我将使用Linq to entities(实体框架)作为我的数据模型(DAL),我的设计模式将是3层,其中实体框架将是DAL层


我的问题是,我应该为我的表设置一个BLL层,以便我从表示层(我的页面)处理它,我从中调用我的选择、插入、更新和删除函数,还是最好直接在表示层中调用实体框架?

这取决于应用程序;层不是因为好而定义的,层是因为需要而定义的

如果您的应用程序很大,而且业务规则经常会更改,那么就构建一个BLL层。否则,我认为,这只是过度工程。 在决定时,应用程序的规模和更改率应该是您主要关心的问题

请注意,如果您直接调用EF,您的业务规则将位于表示层内。如果它们可能会发生更改,那么重构表示层将是一个混乱,并且重用性将降低


但这同样取决于应用程序的规模、项目进度、业务规则的变化率和其他因素。

我的应用程序是一个新闻门户,我关心的是不要重复相同的方法,例如addarticle(),重复2到3次,我可以为文章创建BLL层并填充其属性,然后调用addarticle()方法,它将完成其余的工作。您可以在演示文稿中定义一个addarticle方法并重用它,这并不意味着实现一个业务层。您完全正确,但这不意味着我将不得不修改此方法3次,例如,如果以后我在表中添加了一个新字段?不,只需使用相同的addarticle方法在所有需要的地方。如果您更改它,它将被全部更改。但这不会在所有地方更改它,如果我在a.aspx和b.aspx中都有AddArticle(),那么我将不得不修改这两个,我不希望发生这种情况