Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# BLL和DAL中的不同模型_C#_Wpf_Data Access Layer_Bll - Fatal编程技术网

C# BLL和DAL中的不同模型

C# BLL和DAL中的不同模型,c#,wpf,data-access-layer,bll,C#,Wpf,Data Access Layer,Bll,因此,我正在努力学习如何在WPF应用程序中保持良好的结构,并且很难找到使用BLL和DAL的最佳方法 我的BLL中已经有几个型号,例如: 顾客, 账户 等 我还使用MVVMLight工具包使事情变得更简单,因此我的几乎所有模型都继承自“ObservableObject” 现在我将创建DAL并使用实体框架。由于我的所有模型都使用ObserveObject,我觉得我不能仅仅将它们移动到DAL来创建表(代码优先) 这里最好的方法是在DAL中创建几乎相同的对象,并在检索它们时将所有数据映射到BLL中的旧模

因此,我正在努力学习如何在WPF应用程序中保持良好的结构,并且很难找到使用BLL和DAL的最佳方法

我的BLL中已经有几个型号,例如:

顾客, 账户 等

我还使用MVVMLight工具包使事情变得更简单,因此我的几乎所有模型都继承自“ObservableObject”

现在我将创建DAL并使用实体框架。由于我的所有模型都使用ObserveObject,我觉得我不能仅仅将它们移动到DAL来创建表(代码优先)


这里最好的方法是在DAL中创建几乎相同的对象,并在检索它们时将所有数据映射到BLL中的旧模型吗?我知道这是工作的两倍,所以我看不出如何保持它更干净(除了停止从ObserveObject继承)

Customer
Account
这样的实体必须属于
模型。 建议对所有不相关的依赖项(如MVVM bla)保持
域的不可知性。首先,我将考虑如何从模型中移除对MVVMLoopTooKi的依赖性。
您总是可以依赖INotifyPropertyChanged,有时最好牺牲几个语法片段。
如果你能避免重复,你就应该避免它

最后,你提出的问题取决于具体情况,没有一个完美的补救办法

考虑学习以下材料:


对于不熟悉上述缩写的任何用户,BLL代表业务逻辑层,DAL代表数据访问层。通常,从DAL生成的对象不应在BLL中使用,因此应复制到BLL对象。请注意,这两个层中的对象不应该完全相同。。。你的业务对象应该(或者至少可以)是层次化的,不像你的DAL对象。我明白了,是的,那么我就走上了正确的道路。我有一个简短的后续问题,是否有任何正常的命名约定?我猜在DAL和BLL中都有“Customer”可能会有点混乱。有CustomerBll、CustomerDto这样的东西是正常的吗?一个是域/BLL的CustomerEntity,简单地说,不管DAL的表名是什么(特别是如果您使用实体框架),我个人会在DAL类的前面加上
Db
,以避免这个问题,例如
DbUser
,但是你可以使用任何你觉得舒服的东西。谢谢你的评论,我稍后将查看pluralsight视频。我知道我可以移除它们,但我觉得我失去的比我从中得到的更多。我喜欢WPF的东西是易于绑定到GUI,我宁愿有多个模型,也不愿尝试设置新事件等来保持GUI的更新。这意味着您的域与WPF基础设施紧密耦合。这通常是一个非常糟糕的主意。