У меня возникли проблемы с попыткой сопоставить мою модель EF 4.1 Code First с базой данных. Все работает нормально, когда база данных точно соответствует коду, но когда я пытаюсь сопоставить, когда столбцы отличаются именем, я сталкиваюсь с проблемами.
Я следовал учебнику, который должен был быть построен с одной из CTP-сборников, потому что некоторые из методов отсутствуют/разные.
Моя модель выглядит так:
public class Dinner
{
public int DinnerID { get; set; }
public string HostedBy { get; set; }
public DateTime EventDate { get; set; }
public string Title { get; set; }
public string Address { get; set; }
}
public class NerdDinners : DbContext
{
public DbSet<Dinner> Dinners { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
// THIS IS WHAT I TRIED BUT IT IS FAILING
modelBuilder.Entity<Dinner>().Map(mc =>
{
mc.Properties(c => new {
colID = c.DinnerID,
colTitle = c.Title,
colHost = c.HostedBy,
colDate = c.EventDate,
colAddress = c.Address
});
mc.ToTable("tblDinner");
}
);
}
}
Мне нужна моя таблица:
tblDinners
colID
colHost
colDate
colTitle
colAddress
Я получаю эту ошибку:
Выражение свойств 'c = > new < > f__AnonymousType0`5 (colID = c.DinnerID, coltitle= c.Title, colHost = c.HostedBy, colDate = c.EventDate, colAddress = c.Address) ' не действует. Выражение должно представляют свойство: С#: 't = > t.MyProperty 'VB.Net:' Функция (t) t.MyProperty. При указании несколько свойств используют анонимный type: С#: 't = > new {t.MyProperty1, t.MyProperty2} 'VB.Net:' Функция (t) Новое из {t.MyProperty1, t.MyProperty2} '.
Каков правильный синтаксис для сопоставления столбцов?
Бонусные баллы, если вы дадите мне знать, как сопоставить свойство Address в подклассе Address:
public class Address
{
City
State
Zip, etc
}