LINQ(DBML)生成的类是否被认为是POCO?如果我向这些类添加静态查询,它们仍然是POCO吗?
我想,一旦我开始在LINQ partials做生意,它就会改变。比如添加其他属性,创建集合并基本上使部分更多于DAL类。
如果LINQ类是POCO,那么另一个例子是什么?
答案 0 :(得分:0)
我会说not。 Linq to SQL设计器生成的类中有相当多的智能。
答案 1 :(得分:0)
好吧,他们至少没有继承任何特殊的基类。你可以简单地删除大部分代码 - LINQ-to-SQL不需要任何代码。但请注意,在这样做时,您将失去许多增强功能,例如更有效的更改跟踪(没有属性更改事件)和延迟加载关系。
更重要的是,谁在乎是否有人认为POCO是否符合您的需求?至于将自己的行为添加到数据对象...这就是对象的用途。 POCO并不意味着没有行为,它只是意味着对象不是太“奇怪”或者有很多特定于框架的代码(例如需要特殊基类,特殊接口等)。
答案 2 :(得分:0)
简短的回答是否定的。 LINQ to SQL生成的类包含数据库持久性逻辑,LINQ to SQL需要该逻辑才能使其正常工作。 POCO by definition没有这样的代码。