Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.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
Linq to sql Linq到SQL设计问题!_Linq To Sql_Design Patterns_Architecture_C# 3.0 - Fatal编程技术网

Linq to sql Linq到SQL设计问题!

Linq to sql Linq到SQL设计问题!,linq-to-sql,design-patterns,architecture,c#-3.0,Linq To Sql,Design Patterns,Architecture,C# 3.0,如果需要从dbml文件创建POCO对象,该怎么办?你用发电机吗?谁用?你是手动写POCO的吗? 假设您希望使对象持久化并共享给客户机,然后为客户机-DAO-L2S对象之间的通信创建DAO模式,这是使用Linq 2 SQL进行断开连接设计的问题。假设POCO使用客户机时应该尽可能地原始,而不需要依赖项(EntityRef、EntitySet、Attributes等),当然,您可以使用适当的数据将L2S对象强制转换到POCO中。 任何关于这个概念的帮助和修正都会非常有帮助 我很想说“在.NET 4.

如果需要从dbml文件创建POCO对象,该怎么办?你用发电机吗?谁用?你是手动写POCO的吗? 假设您希望使对象持久化并共享给客户机,然后为客户机-DAO-L2S对象之间的通信创建DAO模式,这是使用Linq 2 SQL进行断开连接设计的问题。假设POCO使用客户机时应该尽可能地原始,而不需要依赖项(EntityRef、EntitySet、Attributes等),当然,您可以使用适当的数据将L2S对象强制转换到POCO中。 任何关于这个概念的帮助和修正都会非常有帮助

我很想说“在.NET 4.0中等到EF”,这大大改进了POCO支持(与EF current相比),并且有望在VS2010中成为一个POCO T4模板


目前SqlMetal将发射丰富的对象;虽然LINQ to SQL可以处理POCO类型,但您必须自己编写POCO,或者在dbml上使用xslt/T4/任何东西。

SqlMetal可以通过
/map[:file]
开关从输入dbml文件发出XML映射文件。这将从生成的类文件中删除属性,这离POCO更近了一步-您只需记住从XML映射文件初始化数据上下文实例


删除
EntitySet
EntityRef
引用比较困难,我不确定我会推荐这样做,因为这样会丢失很多有用的功能。但是,这是可能的-您需要手动操作传递给SqlMetal的DBML文件,方法是删除VS 2008中使用的、基于SqlMetal的所有
,但是您可以选择完全定制输出以满足您的需要,因为它使用T4进行模板规范和输出生成。

我们还使用Linq2Sql,需要根据L2S结果编写自己的模型类。经过大量的谷歌搜索,我找到了使用.dbml或.edmx文件作为源并创建自己的POCO实体的方法。 文章底部的下载链接或。
我们将其用作基础,然后根据我们的需要进行定制。

OP指的是L2S还是EF?澄清;对不起,我的意思模棱两可;我的主要观点是EF 4.0 codegen具有POCO功能。EA,我听说EF 4和T4代码生成,你的意思是我们可以创建代码(像POCO一样简单的类)来处理整个上下文域模型?Danniel Simmons在采访中说codegen不好,T4是EF 4的方式。但是我现在使用L2S,迫不及待:(我想写POCO是我现在唯一的方法!