Да, я знаю, есть много материалов о том, как включить идентификационную вставку и отключить ее после, что на самом деле я хочу использовать.Но есть еще одна проблема, поэтому я начал этот вопрос.
Обычный способ вставить что-то в столбец идентификаторов таков:
using (var connection = new SqlConnection("Connection String here"))
{
connection.Open();
var query = "SET IDENTITY_INSERT dbo.MyTable ON; INSERT INTO dbo.MyTable (IdentityColumn) VALUES (@identityColumnValue); SET IDENTITY_INSERT dbo.MyTable OFF;";
using (var command = new SqlCommand(query, connection)
{
command.Parameters.AddWithValue("@identityColumnValue", 3);
command.ExecuteNonQuery();
}
}
У меня есть 2 вопроса по этому поводу:
мне нужно использовать это "dbo."?В настоящее время я работаю с localdb из VS, но проект будет развернут на реальном сервере после его завершения
ОСНОВНАЯ ПРОБЛЕМА: я хочу вставить полный объект, а не только значение длястолбец идентичности.Объект имеет заданный идентификатор, который в БД является PK.И у него есть строковое значение, которое тоже нужно вставить.
Как я могу это сделать?Я ищу что-то вроде:
Context.Database.Add(myObject);
*Sql string with c# to turn on identity insert*
context.database.SaveChanges();
*Sql string with c# to turn off identity insert*
Это моя модель, чтобы вы могли лучше понять вопрос:
public class myObject
[Key]
public int Id { get; set; }
public string Position { get; set; }