簡體   English   中英

這是 LINQ-to-SQL 的示例嗎?

[英]Is this an example of LINQ-to-SQL?

我用 SQL CE 數據庫做了一個小 WPF 應用程序。

我使用 LINQ 構建了以下代碼,以從數據庫中獲取數據,這非常容易。 所以我想“這一定是 LINQ-to-SQL”。

然后我做了“添加項目”並添加了一個“LINQ-to-SQL 類”.dbml 文件,將我的表拖到 Object 關系設計器上,但它說,“選定的 object 使用了不受支持的數據提供程序。”

然后我質疑以下代碼是否真的是 LINQ-to-SQL,因為它確實允許我訪問我的 SQL CE 數據庫文件中的數據,但官方的“LINQ-to-SQL”似乎不受 Z97788240A0101CB305AC9 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;
    }

}

是的,那是 LINQ 到 SQL。 它使用System.Data.Linq.DataContext ,即 LINQ 到 SQL。 聽起來設計師不支持您的提供商,但 LINQ 到 SQL 本身支持。

(或者設計師對你的連接字符串很挑剔,如果你稍微改變一下就會應付。這聽起來很可能......)

此 msdn 文章指出,雖然 LINQ 到 SQL 運行時支持 sdf,但設計器不支持它。

去引用:

  • LINQ 到 SQL 運行時和 SQLMetal 命令行工具支持 SQL Server Compact 3.5。
  • Object 關系設計器不支持 SQL Server Compact 3.5。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM