Я использую EntityFramework - Code First, DBContext с классами POCO.EntityFramework - Обнаружение базы данных Созданные свойства
Во время выполнения, как я могу обнаружить свойство принадлежит полей, генерируемый в базе данных, помеченный как .HasDatabaseGeneratedOption, .IsRowVersion (только для чтения?) И т.д.
я посмотрел на var xxx = Entity.GetType().GetProperty("ID").Get
..., не повез.
public partial class OnMuhasebeContext : DbContext
{
public bool IsDatabaseGeneratedProperty <?>(...)
{
// Parameters :
// We know all poco classes of course
// also parameters can be instance type
}
}
Update:
пожалуйста, прочтите «базу данных генерируемый», как «поле, значение которого генерируется базой данных» и маркирована в модели, чтобы отразить это. Эти свойства относятся к полям, сгенерированным БД, и помечены как идентификатор и RowVersion с использованием Fluent API.
public class POCOMap : EntityTypeConfiguration<POCO>
{
public POCOMap()
{
// Primary Key
this.HasKey(t => t.ID);
this.Property(t => t.RowVersion)
.IsFixedLength()
.HasMaxLength(8)
.IsRowVersion();
}
}
Важный момент: Как получить свойства отмечены в модели или кода первой модели, используя Fluent API или Annotions данных. Базы данных сами по себе не важны, как философия, лежащая в основе Entity Framework.
Эмм, вы говорите, вы используете Code First. Как вы можете создавать свойства базы данных? Или вы имеете в виду, что у вас есть поля, которые требуются базе данных? –
Пожалуйста, ознакомьтесь с разделом обновления. Значение поля RowVersion-Timestamp, заданное базой данных при обновлениях. Значения полей идентификатора автоинкремента задаются базой данных при вставках. – Ayhan