我想使用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属性的数据库,因此很难从表中专门为该对象创建一个类
所以有一种方法可以更轻松地自动创建与表中的对象兼容的对象
如果我不清楚,请告诉我,以便我能澄清它
感谢
答案 0 :(得分:1)
首先,请注意LINQ-to-SQL不是(AFAIK)验证用于Access。它通常工作,但是MMMV。
就个人而言,我会通过将表从Access数据库导入(迁移)到SQL Server Express实例来解决此问题,并使用它来生成模型(当然,工具可能甚至可以工作反对Access,但我认为他们没有 - 因此问题)。生成模型后,您应该能够在访问数据库中指向它(在运行时 - 通过连接字符串或连接)。
您可能还会考虑:为什么不将保留作为SQL Server Express节点 - 它运行良好,并且在LINQ-to-SQL方面得到更好的支持。
另请注意,还有其他类似LINQ-to-SQL的工具可用于您的目的; DbLinq,dapper-dot-net等 - 以及一些更重量级的工具(EF,NHibernate,LLBLGen Pro等)
答案 1 :(得分:1)
Developer Express将允许您直接从Access 2007/2010数据库创建.Net类,并使用Linq创建查询。
好消息是,如果您希望更改数据库后端,例如您将数据从Access传输到SQL Server or MySQL or PostgreSQL, etc,则只需更改数据库连接字符串,而不是代码。