簡體   English   中英

C#linq:如何將對象作為新記錄提交到數據庫

[英]c# linq: how to submit object to database as a new record

我有以下對象:

namespace LearnLINQ1
{
    [Table(Name="testMe")]
    public class SubmitTest
    {
        [Column(Name="FirstName")]
        public string FirstName { get; set; }

        [Column(Name = "LastName")]
        public string LastName { get; set; }

        [Column(Name = "PhoneNumber")]
        public int PhoneNumber { get; set; }

        linqLayerDataContext db;
    }
}

而且我在構造函數中使用了相同的東西:

namespace LearnLINQ1
{
    [Table(Name="testMe")]
    public class SubmitTest
    {
        [Column(Name="FirstName")]
        public string FirstName { get; set; }

        [Column(Name = "LastName")]
        public string LastName { get; set; }

        [Column(Name = "PhoneNumber")]
        public int PhoneNumber { get; set; }

        linqLayerDataContext db;

        //constructor
        public SubmitTest(string first, string last, int phone, linqLayerDataContext db)
        {
            this.FirstName = first;
            this.LastName = last;
            this.PhoneNumber = phone;
            this.db = db;
        }

    }
}

我正在使用以下代碼實例化該對象,並嘗試將其作為新記錄添加到數據庫中:

SubmitTest test = new SubmitTest { FirstName = "Jeremy", LastName = "Stafford", PhoneNumber = 23 };
db.testMes.InsertOnSubmit(test);

但即時通訊收到錯誤:

錯誤1'System.Data.Linq.Table.InsertOnSubmit(LearnLINQ1.testMe)'的最佳重載方法匹配具有一些無效的參數C:\\ Users \\ Jeremy \\ Documents \\ Visual Studio 2010 \\ Projects \\ LearnLINQ1 \\ LearnLINQ1 \\ Form1.cs 42 13學習LINQ1

錯誤2參數1:無法從'LearnLINQ1.SubmitTest'轉換為'LearnLINQ1.testMe'C:\\ Users \\ Jeremy \\ Documents \\ Visual Studio 2010 \\ Projects \\ LearnLINQ1 \\ LearnLINQ1 \\ Form1.cs 42 39 LearnLINQ1

我不確定類定義中是否缺少某些東西……對這個概念來說有點新。 有人可以指出我正確的方向嗎?

===============================更新:好的,所以我做了一些更改

客戶類別:

namespace LearnLINQ1
{

    public class Customer
    {
        [Table(Name = "testMe")]
        public class SubmitTest
        {
            [Column(Name = "FirstName")]
            public string FirstName { get; set; }

            [Column(Name = "LastName")]
            public string LastName { get; set; }

            [Column(Name = "PhoneNumber")]
            public int PhoneNumber { get; set; }
        }
    }
}

和測試代碼:

namespace LearnLINQ1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            linqTestDataContext db = new linqTestDataContext();

            Table<Customer> Customers = db.GetTable<Customer>();
            var cus = new Customer { FirstName = "Jeremy", Lastname = "Stafford", Age = 31 };
            db.Customers.InsertOnSubmit(cus);

            db.SubmitChanges();
        }
    }
}

現在問題出在客戶類別上。 它給出以下錯誤:

錯誤1在聲明類型'LearnLINQ1.Customer'時缺少部分修飾符; 存在此類型的另一個部分聲明C:\\ Users \\ Jeremy \\ Documents \\ Visual Studio 2010 \\ Projects \\ LearnLINQ1 \\ LearnLINQ1 \\ Customer.cs 11 18 LearnLINQ1

LearnLINQ1.testMe是您需要創建的對象,而不是LearnLINQ1.SubmitTest

暫無
暫無

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

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