大家好&提前感谢您提供的任何帮助。
我正在开发一个使用来自其他专有应用程序的数据的应用程序(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的功能的关系,如果它是一个客户主文件屏幕,其中包含数据库将拥有客户,销售,库存表的历史销售数据。
正如我所说,谢谢你的帮助。
答案 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。