Entity Framework автоматически сгенерированный идентификатор, если не установлен

1

Использование EF-кода Сначала я хочу вставить объект с автоматически сгенерированным идентификатором, только если я не установил его идентификатор.

Вот объект, который я хочу вставить:

public class ElementEntity
{
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int Id { get; set; }

    public int Property1{ get; set; }
    public string Property2{ get; set; }
}

и функция, используемая для вставки данных:

public static void AddEntity(int id, int prop1, string prop2)
    {
        db.Contents.Add(new ElementEntity
        {
            Id = id,
            Property1 = prop1,
            Property2 = prop2
        });
        db.SaveChanges();
    }

Я хотел бы иметь ту же функцию, но без параметра id. Если я использую такую функцию, Id автоматически устанавливается в 0 и генерируется исключение.

Является ли Entity Framework Code Fisrt разрешать поведение Id поколения поколений?

Теги:
entity-framework
ef-code-first

1 ответ

1

AFAIK это не EF, который генерирует id, а базу данных, которая делает (следовательно, Database Generated Option). Таким образом, это свойство таблицы базы данных, которая определяет, генерируется ли поле id.

Поэтому я думаю, что смесь невозможна. База данных генерирует его или нет, но не смешивается.

  • 0
    AFAIK EF не отклоняет само назначение. Если основной СУБД является MSSQL, вы можете поиграть с установкой insert_indentity ( см. )

Ещё вопросы

Сообщество Overcoder
Наверх
Меню