MS Access和DataSet

时间:2014-01-21 05:41:11

标签: wpf wcf ms-access entity-framework-6 strongly-typed-dataset

大家好&提前感谢您提供的任何帮助。

我正在开发一个使用来自其他专有应用程序的数据的应用程序(WPF,MVVM,WCF服务,EF6和MS SQL Exp数据库),我的问题是我正在使用的其他应用程序使用MS Access DB这意味着我需要为我的数据层使用EF的替代方案来访问其他应用数据。

那说我已经做了一些研究并且有一点戏剧,我很确定我使用DataSets,DataTables& amp; DataAdapter用于MS Access DB的数据层。从我发现从WCF服务返回DataSet的不好的做法,所以在服务中我打算使用这样的东西,它不返回数据集本身;

[OperationContract] 
   public IEnumerable<Customer> GetEvents()
   {
       using (var context = new DataSet())
       {
           var result = context.Customers.ToList();
           result.ForEach(e => context.Detach(e));
           return result;
       }
   }

现在我的问题是,如果我使用EF,它将包含来自数据库的所有表,所以如果我使用DataSet,那么数据集应该保存数据库中的所有表,还是应该有一个只保存数据集的动态数据集桌子和桌子我正在使用IE的功能的关系,如果它是一个客户主文件屏幕,其中包含数据库将拥有客户,销售,库存表的历史销售数据。

正如我所说,谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

当然可以使用DataSet查询MS Access,但有(IMO更好)替代方案:

我更喜欢使用像Dapper这样的微型ORM,它只是将SQL查询映射到.NET POCO。

Here is a previous answer that I wrote to a similar question,带有使用Dapper查询MS Access数据库的示例代码。

有关示例和链接,请访问Dapper的official site和Stack Overflow tag wiki