我正在将LinqtoSQL用于WPF MV-VM应用程序,因为我可能希望将来从LinqtoSql更改为其他内容,例如Entity框架或Subsonic等,因此我发现存储库模式很有帮助,
我的问题是我如何创建模型类,假设我在数据库中有一个表,我明白我不能使用LINQtoSQL生成的Class作为模型类,如果我这样做,那么我将依赖于LinqtoSQL,哪个会破坏我实现存储库模式的独立性,这是否意味着我需要为所有实体类创建自己的自定义类?
答案 0 :(得分:4)
好主,不。你为什么要这样对自己?
你已经在你的ViewModel中复制了这么多,你为什么要添加另一层复制以获得如此少的收益,特别是考虑到L2S可以使用普通的'clr类型?
我认为我的服务合同从WCF服务和ORM类型到 我的模型。仅仅因为它不存在于* .Model命名空间中并不意味着什么。
如果您觉得需要这个润滑层,请将该图层作为您的ViewModel。这就是他们的目的。
答案 1 :(得分:1)
是的,这意味着您需要为所有实体类实现自己的自定义类。这是一种痛苦,但那是现状。
有关此主题的更多信息以及一些可能的补救措施,请参阅this SO answer。