如何自动创建一个与访问表兼容的类?

时间:2011-05-22 12:15:05

标签: c# linq linq-to-sql ms-access ms-access-2007

我想使用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属性的数据库,因此很难从表中专门为该对象创建一个类

所以有一种方法可以更轻松地自动创建与表中的对象兼容的对象

如果我不清楚,请告诉我,以便我能澄清它

感谢

2 个答案:

答案 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)

来自XPO的ORM工具

Developer Express将允许您直接从Access 2007/2010数据库创建.Net类,并使用Linq创建查询。

好消息是,如果您希望更改数据库后端,例如您将数据从Access传输到SQL Server or MySQL or PostgreSQL, etc,则只需更改数据库连接字符串,而不是代码。

Documentation is available online