c # linq: как отправить объект в базу данных как новую запись - PullRequest
1 голос
/ 17 мая 2011

У меня есть следующий объект:

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 \ Джереми \ Documents \ Visual Studio 2010 \ Projects \ LearnLINQ1 \ LearnLINQ1 \ Form1.cs 42 13 LearnLINQ1

Ошибка 2, аргумент 1: невозможно преобразовать из «LearnLINQ1.SubmitTest» в «LearnLINQ1.testMe» C: \ Users \ Джереми \ Documents \ Visual Studio 2010 \ Projects \ LearnLINQ1 \ LearnLINQ1 \ Form1.cs 42 39 LearnLINQ1

IЯ не уверен, было ли что-то, чего я пропускал в определении класса ... немного нового для концепции.Может кто-нибудь направить меня в правильном направлении?

================================ ОБНОВЛЕНИЕ: Хорошопоэтому я сделал некоторые изменения

класс клиента:

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

1 Ответ

1 голос
/ 17 мая 2011

LearnLINQ1.testMe - это объект, который необходимо создать, а не LearnLINQ1.SubmitTest

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...