2009-02-25 70 views
1

我用SQL CE數據庫做了一個小WPF應用程序。這是LINQ到SQL的例子嗎?

我使用LINQ構建了以下代碼以從數據庫中獲取數據,這非常容易。所以我認爲「這一定是LINQ到SQL」。

然後,我做了「添加項目」,並添加了一個「LINQ-to-SQL classes」.dbml文件,將我的表拖到Object Relational Designer上,但它說:「所選對象使用不受支持的數據提供者。

那麼我質疑下面的代碼實際上是否是LINQ-to-SQL,因爲它確實允許我從我的SQL CE數據庫文件訪問數據,但官方「LINQ-to-SQL」似乎不受支持對於SQL CE。

以下是「LINQ-to-SQL」或不是?

using System.Linq; 
using System.Data.Linq; 
using System.Data.Linq.Mapping; 
using System.Windows; 

namespace TestLinq22 
{ 
    public partial class Window1 : Window 
    { 
     public Window1() 
     { 
      InitializeComponent(); 

      MainDB db = new MainDB(@"Data Source=App_Data\Main.sdf"); 
      var customers = from c in db.Customers 
          select new {c.FirstName, c.LastName}; 
      TheListBox.ItemsSource = customers; 
     } 
    } 

    [Database(Name = "MainDB")] 
    public class MainDB : DataContext 
    { 
     public MainDB(string connection) : base(connection) { } 
     public Table<Customers> Customers; 
    } 

    [Table(Name = "Customers")] 
    public class Customers 
    { 
     [Column(DbType = "varchar(100)")] 
     public string FirstName; 

     [Column(DbType = "varchar(100)")] 
     public string LastName; 
    } 

} 

回答

5

This msdn article指出,雖然日本自衛隊由支持LINQ to SQL運行時,它不受設計者的支持。

要引用:

  • 的的LINQ to SQL運行庫和SQLMetal命令行工具支持SQL Server精簡3.5。
  • 對象關係設計器不支持SQL Server Compact 3.5。
5

是的,這是LINQ to SQL。它使用的是LINQ to SQL的System.Data.Linq.DataContext。這聽起來像設計師不支持你的提供者,但LINQ to SQL本身。

(或設計師挑剔你的連接字符串,如果你改變一點點就會應付。這聽起來可能象什麼...)