2011-05-16 3 views
1

私は、次のオブジェクトがあります。私は、コンストラクタと同じものを使用しました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); 

しかし、イムERRを取得または:

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:[OK]をので、私はいくつかの変更

作ら顧客クラス:

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

+1

データコンテキストで別のコレクションがあるはずです - 'SubmitTests'のようなものと呼ばれるもの。基本的に、 'SubmitTest'オブジェクトを' TestMe'オブジェクトのコレクションに格納しようとしています。ちょうどうまくいきません... –

+0

あなたが提供したコンストラクタを使うこともできます:SubmitTest test = new SubmitTest( "Jeremy "、" Stafford "、23、db); – Francisco

+0

nm、それを落として再起動します。私はこれらのオブジェクトがデータのコンテキストによって推測されたことに気付かなかったという事実によっていくつかの矛盾が生じました。 – Sinaesthetic

答えて

1

LearnLINQ1.testMeは、作成する必要は対象ではありませんLearnLINQ1.SubmitTest

+0

存在しないtestMeというクラスからオブジェクトtestMeをインスタンス化するにはどうすればよいですか? – Sinaesthetic

関連する問題