2011-03-09 234 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(); 
    }