Использование 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 поколения поколений?
AFAIK это не EF, который генерирует id, а базу данных, которая делает (следовательно, Database Generated Option). Таким образом, это свойство таблицы базы данных, которая определяет, генерируется ли поле id.
Поэтому я думаю, что смесь невозможна. База данных генерирует его или нет, но не смешивается.