У меня здесь небольшое / странное поведение, и я просматриваю Интернет и ТАК, и я не нашел ответа.
Я должен признать, что я впервые использую базы данных, я знаю, как использовать их с SQL, но никогда не использовал его на самом деле.
В любом случае, у меня проблема со вставкой данных в мое приложение, я только что создал очень простой проект для тестирования, и пока нет решения.
У меня есть пример базы данных с Sql Server
Id - int (первичный ключ идентификации)
Имя - nchar (10) (не ноль)
Стол называется «Персона», просто как пирог.
У меня есть это:
static void Main(string[] args)
{
var db = new ExampleDBDataContext {Log = Console.Out};
var jesus = new Person {Name = "Jesus"};
db.Persons.InsertOnSubmit(jesus);
db.SubmitChanges();
var query = from person in db.Persons select person;
foreach (var p in query)
{
Console.WriteLine(p.Name);
}
}
Как видите, ничто не отвлекает.
Это показывает Иисуса в консоли. Но если вы видите данные таблицы, данных нет, просто пусто. Я комментирую создание и вставку объекта, и foreach ничего не печатает (нормально, в базе данных нет данных)
Странно то, что я создал строку в базе данных вручную, и Id был 2, а не 1 (Действительно ли linq играл с базой данных, но не создал строку?)
Есть журнал:
INSERT INTO [dbo] .Person
ЗНАЧЕНИЯ (@ p0)
SELECT CONVERT (Int, SCOPE_IDENTITY ()) AS [значение]
- @ p0: ввод NChar (размер = 10; Prec = 0; масштаб = 0) [Jesus]
- Контекст: SqlProvider (Sql2005) Модель: AttributedMetaModel Сборка: 3.5.30729.4926
SELECT [t0]. [Id], [t0]. [Name]
ОТ [dbo]. [Person] AS [t0]
- Контекст: SqlProvider (Sql2005) Модель: AttributedMetaModel Сборка: 3.5.30729.4926
Я действительно запутался, все блоги / книги используют этот вид фрагмента для вставки элемента в базу данных.
Спасибо за помощь.