С Entity Framework 4.1 Codefirst, как вы создаете несопоставленные поля в классах Poco? - PullRequest
10 голосов
/ 10 мая 2011

У меня есть набор классов в качестве объектов моего домена. У меня есть набор файлов конфигурации для сопоставления этих объектов (EntityTypeConfiguration <>).

Когда я добавляю свойство к любому из объектов домена без сопоставления со столбцом, dbcontext пытается запросить столбец, игнорируя тот факт, что он не сопоставлен.

Я должен пропустить настройку либо в коде конфигурации, либо в коде dbcontext. Я не хочу добавлять атрибут в класс poco (декорирование pocos связывает их с определенной реализацией постоянства, которой я хочу избежать).

При вызове IQueryable для заполнения объекта заявки вызов завершается с сообщением:

Неверное имя столбца «NotInDatabase».

public class Ticket  
{  
    public Ticket() 
    {
    }

    public virtual int Id
    {
        get;
        set;
    }

    public virtual string Title
    {
        get;
        set;
    }

    public virtual string Description
    {
        get;
        set;
    }

    public string NotInDatabase
    {
        get;
        set;
    }
}


internal class TicketConfiguration : EntityTypeConfiguration<Ticket>  
{   
    public TicketConfiguration()  
    {  
        ToTable("ticket_table_name");

        HasKey(o => o.Id)
            .Property(o => o.Id)
            .HasColumnName("ticketId")
            .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity)
            .IsRequired();

        Property(o => o.Title).HasColumnName("TicketTitle");
        Property(o => o.Description).HasColumnName("TicketDescription");
    }   
}

Примечание: Пожалуйста, не предлагайте использовать «База данных сначала» или «Модель сначала» для моей ситуации. Я хочу отобразить объекты poco в базе данных, используя сначала функции кода, хотя у меня есть существующая структура БД. Я сравниваю это с nhibernate и действительно хочу придерживаться аналогичной структуры (поскольку Microsoft «приняла» подход беглого nhibernate, сравнить яблоки с яблоками довольно легко).

Спасибо!

1 Ответ

15 голосов
/ 11 мая 2011

. Игнорировать следует делать трюк или по атрибуту он называется [NotMapped]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...