2011-03-09 236 views
0

我有我使用的以下代码。但是,我试图使用表名来检索数据和实体。实体框架

 SalesInvoiceList = (from p in entities.SalesCards 
          select new SalesInvoice 
          { 
           ID = p.ID, 
           InvoiceNo = p.InvoiceNo, 
           DateTime = p.DateTime, 
           ContactName = p.CustomerCard.ContactName, 
           CompanyName = p.CustomerCard.CompanyName 
          }).ToList(); 

我希望能够做以下或类似

 SalesInvoiceList = (from p in "DBO.SALESCARD" 
          select new SalesInvoice 
          { 
           ID = p.ID, 
           InvoiceNo = p.InvoiceNo, 
           DateTime = p.DateTime, 
           ContactName = p.CustomerCard.ContactName, 
           CompanyName = p.CustomerCard.CompanyName 
          }).ToList(); 

什么是做的最好的方法什么?

感谢

+2

你为什么要使用表名?像EF这样的ORM的全部意义在于让你尽可能远离数据库。 – Oded 2011-03-09 20:44:09

+0

你可以使用表达式来定义运行时你想从中选择什么,但是像Oded说的那样, – 2011-03-09 20:47:03

+0

数据库表是动态创建的,所以我知道他们的名字。他们在设计时不知道。有没有在运行时建立EF的方法?它甚至有意义吗? – 2011-03-10 04:38:19

回答

1

您可以随时使用EF只是一些查询映射到你的对象

Db.Database.SqlQuery<SalesInvoice>("SELECT ID, InvoiceNo, DateTime, ContactName, CompanyName FROM dbo.[SALESCARD]"); 
0

不知道如果我理解你想要正确地做,但如果我这应该是一个简单的解决你所要做的事情。

public List<SalesInvoice> GetSalesInvoices() 
    { 
     var _db = new yourDbContext(); 

    var query = _db.TableThatHasSalesInvoices; 

    return query.ToList(); 
    }