【发布时间】:2015-03-26 23:18:34
【问题描述】:
我在数据访问方面有点落后,需要指出正确的方向。我目前只有一个 SQL Server 数据库表,其中包含大约 35 列。我正在构建一个 WCF Web 服务来提供对它的访问,并试图找出将基于 C# 的 Web 服务链接到数据库的最快方法。
我一直在研究 Entity Framework,但它似乎很重,到目前为止我在上面找到的所有内容似乎都假设您已经对此有所了解,所以如果它是错误的路径。我并不完全赞同在应用程序中生成 SQL 的想法。我已经有一个 DataContract 类,其中包含表中每一列的属性,我只是在寻找一种自动方法来将列映射到属性,并将属性映射回列/存储过程参数。我已经编写了一些代码,使用反射将来自不同源的数据映射到此 DataContract(匹配属性名称与作为备份的附加映射字典),所以在这里做同样的工作并不多,但我想看看还有什么可用的。我要避免的是写出每个PropertyName = ColumnName.Value。对于像这样的简单案例,VS2010 .NET 4.0 中是否内置了一些轻量级的东西?像here 提到的那样通过EF 直接调用存储过程是一个不错的选择吗?它看起来有点过时了。
【问题讨论】:
-
你可能想看看NHiberante
-
恕我直言,Entity Framework 和 NHibernate 的教育负担大致相同。
-
@DavidTansey 这不是一个好兆头。我找不到任何关于将存储过程映射到现有 POCO 的东西(有效的)。每当我查看 Entity Framework 时,总是有一个更快的解决方案可用,这就是为什么我仍然不熟悉它。鉴于它是一个 ORM 工具,很难找到如何将 db 列映射到现有类,这让我感到非常惊讶。在我试图弄清楚如何使用 EF 的时间里,我本可以自己编写代码。所以在这一点上我会,但仍然有兴趣看看是否有更好的答案,我只是找不到。
-
花点时间看看以下内容:msdn.microsoft.com/en-us/library/jj200620.aspx 这是一个简短的教程,用于将现有数据库自动逆向工程为实体框架的“代码优先”模型。请务必检查先决条件,尤其是
Entity Framework Tools for Visual Studio。然后你可以跳到第 3 步,因为你已经有了一个数据库。完成第 3 步后,您的表应该有一个 POCO 类,并且您的存储过程也应该可以从 EF 上下文中调用——您可以决定使用哪个。这个很短很甜 - 祝你好运。
标签: c# sql-server .net-4.0 data-access