C#LINQ:如何提交对象数据库作为新记录
我有以下对象:C#LINQ:如何提交对象数据库作为新记录
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);
但即时得到的错误:使用下面的代码实例化对象,并试图将其作为一个新的记录添加到数据库米或:
Error 1 The best overloaded method match for 'System.Data.Linq.Table.InsertOnSubmit(LearnLINQ1.testMe)' has some invalid arguments C:\Users\Jeremy\Documents\Visual Studio 2010\Projects\LearnLINQ1\LearnLINQ1\Form1.cs 42 13 LearnLINQ1
Error 2 Argument 1: cannot convert from 'LearnLINQ1.SubmitTest' to 'LearnLINQ1.testMe' C:\Users\Jeremy\Documents\Visual Studio 2010\Projects\LearnLINQ1\LearnLINQ1\Form1.cs 42 39 LearnLINQ1
我不确定在类定义中是否有东西缺失...有点新概念。有人能指引我朝着正确的方向吗?
================================ UPDATE:好了,所以我做了一些改动
的客户类:
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();
}
}
}
现在的问题是与客户类。它给了以下错误:
Error 1 Missing partial modifier on declaration of type 'LearnLINQ1.Customer'; another partial declaration of this type exists C:\Users\Jeremy\Documents\Visual Studio 2010\Projects\LearnLINQ1\LearnLINQ1\Customer.cs 11 18 LearnLINQ1
LearnLINQ1.testMe是你需要创建对象不LearnLINQ1.SubmitTest
我如何从一个名为testMe的类不存在的实例化对象testMe? – Sinaesthetic 2011-05-16 23:19:41
应该有数据上下文另一个集合 - 一些所谓的像'SubmitTests'。基本上,你试图将一个'SubmitTest'对象存储到'TestMe'对象的集合中 - 这不起作用... – 2011-05-16 21:17:55
你可以使用你提供的构造函数:SubmitTest test = new SubmitTest(“Jeremy “,”Stafford“,23,db); – Francisco 2011-05-16 22:42:01
nm,将其撕下并重新启动。由于我没有意识到这些对象是由数据上下文推断的,所以产生了一些冲突。 – Sinaesthetic 2011-05-17 01:32:40