C# LINQ:如何将对象作为新记录提交到数据库

本文关键字:新记录 提交 数据库 对象 LINQ | 更新日期: 2023-09-27 17:56:31

我有以下对象:

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:''用户''杰里米''文档''视觉 演播室 2010''项目''LearnLINQ1''LearnLINQ1''Form1.cs 42 13 LearnLINQ1

错误 2 参数 1:无法转换 从"LearnLINQ1.SubmitTest"到 'LearnLINQ1.testMe' C:''Users''Jeremy''Documents''Visual 演播室 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 缺少部分修饰符 类型声明 "学习LINQ1.客户";另一个部分 此类型的声明 存在 C:''用户''杰里米''文档''视觉 演播室 2010''Projects''LearnLINQ1''LearnLINQ1''Customer.cs 11 18 LearnLINQ1

C# LINQ:如何将对象作为新记录提交到数据库

LearnLINQ1.testMe

是您需要创建的对象,而不是 LearnLINQ1.SubmitTest