C# C-EF代码第一层定义和逻辑

C# C-EF代码第一层定义和逻辑,c#,entity-framework,poco,layer,C#,Entity Framework,Poco,Layer,我正在用C创建一个分层应用程序,并尝试在其中使用EF6。 我想要代码优先的方法POCO。 我对图层项目的想法: DAL实体框架6。 实体,其中我的类表示数据库中的表,或者实体表示我的数据库对象。 我通过方法扩展方法将业务添加到Entites类中,比如将“void CalculateTaxes”添加到产品类中。 演示UI,现在是Win窗体,以后可以是web。。。 首先,我对所有这些都比较陌生,我正在研究层架构 问题是:DAL层必须引用实体层,其中我有用于创建和维护DB的DB对象,实体层必须引用DA

我正在用C创建一个分层应用程序,并尝试在其中使用EF6。 我想要代码优先的方法POCO。 我对图层项目的想法:

DAL实体框架6。 实体,其中我的类表示数据库中的表,或者实体表示我的数据库对象。 我通过方法扩展方法将业务添加到Entites类中,比如将“void CalculateTaxes”添加到产品类中。 演示UI,现在是Win窗体,以后可以是web。。。 首先,我对所有这些都比较陌生,我正在研究层架构

问题是:DAL层必须引用实体层,其中我有用于创建和维护DB的DB对象,实体层必须引用DAL层才能从DB访问对象,而我不能做这种循环依赖。 在这种情况下,我应该如何处理?对于经验丰富的开发人员来说,这是最好的方法吗

实体层必须看到DAL层才能从DB访问对象


这就是你应该打破依赖的地方。这些实体应该与存储无关。当前流行的桥接实体和EF的方法是一个存储库层,它封装CRUD创建、读取、更新和删除逻辑。

请解释实体层必须查看DAL层才能从DB访问对象,实体是DB中的对象。EF将消除您拥有特定DAL的需要,只需在实体层中创建POCO,然后创建DbContextI编辑我的帖子。从MVP Renato Haddad的MSDN帖子中,他创建了一个DAL项目和一个实体项目,表示DB对象。在我的场景中,DAL必须引用de Entities项目,反之亦然。当然,您可以使用存储库,这在DAL中可能是有意义的。事实上,MSDN中创建DAL类的示例就是存储库示例。谢谢