【发布时间】:2013-04-02 22:43:18
【问题描述】:
我已经尝试搜索,但找不到任何类型的数据库类型提供程序,除了 linq 之外,它会吐出连接的对象类型,其中嵌入了所有 linq 信息。
希望可能有一个用于 SQL 数据库的类型提供程序,它会吐出一个愚蠢的 DTO,或者如果没有,一个库会自动转换它们或为我提供一些这样的库,这样我就可以获得我需要的所有生成类型的好处,无需手动创建哑 DTO,我希望在我的存储库之外没有 linq to sql 引用。
【问题讨论】:
-
据我所知,目前除了基于LINQ的数据库提供者之外,没有其他的数据库提供者。尽管社区中的一些人最近一直在试图说服其他人写一个......你反对使用 LINQ 的主要动机是什么?
-
除此之外,我相信 CRM 类型提供程序 (blogs.msdn.com/b/fsharpteam/archive/2013/02/14/…) 实现了获取 SQL 提供程序所需的一些功能...
-
@TomasPetricek 的动机正如 Q 中所说的那样;我通过 linq 从查询/存储过程中吐出的对象将所有特定于数据库的信息绑定到其中,如果您不手动创建哑 DTO 并将 linq 的 DTO 手动映射到您的应用程序的其他部分,那么您会将这些信息暴露给应用程序的其他部分在从您的存储库中返回之前愚蠢的一个。如果类型提供者只是吐出一个 DTO,其中没有任何内容,会像 linq DTO 那样暴露持久性实现细节。
-
如果你不喜欢手动映射,可以试试automapping...
-
@TomasPetricek,如果我错了,请纠正我,但实际上不是有多个 LINQ 提供程序——一个用于 EDMX 文件,一个用于 ObjectContexts,一个用于 DBML,等等?并且不能使用纯 POCO 实体模型和 EDMX 文件来完成 Jimmy 想要的操作吗?
标签: linq-to-sql f# type-providers