LINQ2SQL相當不錯。輕鬆構建實體類並使用它。動態構建LINQ to SQL查詢,無需實體類
但是如果我不知道在編譯時什麼都不關於數據庫和表?
但我需要在「FooDb」中查詢「Foo」表;
我可以針對沒有任何實體類的數據庫運行Linq查詢嗎?
你能告訴我一個例子嗎?
LINQ2SQL相當不錯。輕鬆構建實體類並使用它。動態構建LINQ to SQL查詢,無需實體類
但是如果我不知道在編譯時什麼都不關於數據庫和表?
但我需要在「FooDb」中查詢「Foo」表;
我可以針對沒有任何實體類的數據庫運行Linq查詢嗎?
你能告訴我一個例子嗎?
Linq2Sql是一個ORM - Object Relational Mapper。
因此,在編譯應用程序之前,它需要知道數據庫結構以便生成可以與之交互的類。
簡而言之,您所問的是Linq2Sql或其他任何我知道的ORM。
您可以創建將查詢系統表,併爲您生成和負載類的應用程序,但我不知道你將如何與他們互動的代碼不知道事先的結構。
爲了使LINQ to SQL正常工作,必須在某處編譯實體。因此,擁有動態模型的唯一方法就是構建一個動態組合,就像LINQPad一樣。這是可能的,但是這是很多工作。此外,如果你不知道數據庫是什麼樣子,你的LINQ查詢會是什麼樣子?
不,您不能動態或即時建立您的對象模型。
唯一相關(和非最佳,反直覺的,並且難以maintan)的方式做你想要將是什麼:
SELECT ID FROM Foo;
DataContext.ExecuteCommand()
好這句話。怎麼樣WebMatrix.Data?
如果您需要方便地訪問數據庫,並且不想被打開連接,關閉等等困擾。而且你的項目不需要強類型的實體。
這是MVCConf的傑弗裏巴勒莫展示的東西。像這樣的一段代碼:
using WebMatrix.Data;
...
public IEnumerable<dynamic> Execute(){
Database db = Database.Open("EasyTimeTracking");
var employees= db.Query("select FullName, Startdate, EndDate from Employee");
return employees;
}
是否足夠值得使用的,而不是在C#中做SQL的東西老路上?你怎麼看?
好吧...它可以做它的映射的東西「在飛」? – Agzam 2011-03-15 22:20:15
我的意思是我可以動態構建某種類型。我可以嗎?爲什麼我不能動態構建實體? – Agzam 2011-03-15 22:21:27
@Agzem - 然而,你可能會有什麼意義?您的代碼不會了解這些類,您需要圍繞它們構建基礎結構才能開始使用它們。 – Oded 2011-03-15 22:22:48