我想使用Linq连接到access2007数据库(我不想使用ado.net)。
我看到了一些例子,但所有的例子都为我想从数据库导入的对象创建了一个类,例如
public class Company
{
public string Name
{ get; set; }
public List ListEmp
{ get; set; }
}
var EmpDetails = from comp in ListCompany
select new
{
Emp = (from emp in comp.ListEmp
select new { Company = comp.Name, emp })
};
当你有一个小数据库时,这很容易,但我有一个表中有30属性的数据库,所以很难从表中为对象创建一个类
那么有没有一种更容易的方法,比如自动创建一个与表中的对象兼容的对象
如果我不清楚,请告诉我,这样我就可以澄清
感谢
首先,请注意,LINQ to SQL没有经过(AFAIK)验证以在Access上使用。它通常工作,但MMMV。
就我个人而言,我会通过将Access数据库中的表导入(迁移)到SQL Server Express实例中,并使用该实例生成模型来实现这一点(当然,工具甚至可能对Access有效,但我认为它们不起作用-因此出现了问题)。生成模型后,您应该能够将它(在运行时,通过连接字符串或连接)指向您的访问数据库。
您还可以考虑:为什么不将保留为SQLServerExpress节点呢?它运行良好,而且在LINQ to SQL方面得到了更好的支持。
还要注意,还有其他类似LINQ到SQL的工具可能适用于您的目的;DbLinq、dapper dot net等-以及一些更重的工具(EF、NHibernate、LLBLGen Pro等)
XPO是Developer Express的一个ORM工具,它允许您直接从Access 2007/2010数据库创建.Net类,并使用Linq创建查询。
好的一面是,如果你想更改数据库后端,比如说你把数据从Access传输到了SQL Server、MySQL或PostgreSQL,等等,你只需要更改数据库连接字符串,而不是你的代码。
文档可在线获取。