Затем сопоставьте класс Manager с представлением UserManager, а не с таблицей Manager.
вая это:
create table Location(
LocationId int identity(1,1) not null primary key,
Address nvarchar(max) not null,
City nvarchar(max) null,
State nvarchar(max) not null,
ZipCode nvarchar(max) not null
);
create table Park(
ParkId int not null primary key references Location(LocationId),
Name nvarchar(max) not null
);
Я попробовал это отображение:
modelBuilder.Entity<Location>();
modelBuilder.Entity<Park>().ToTable("Park");
modelBuilder.Entity<Park>().Property(x => x.LocationId).HasColumnName("ParkId");
К сожалению, это не сработало.
using (var db = new Ef())
{
var park = new Park { Name = "11th Street Park", Address = "801 11th Street", City = "Aledo", State = "TX", ZipCode = "76106" };
db.Set<Location>().Add(park);
db.SaveChanges();
}
У него есть эта ошибка:
Свойство 'LocationId' не является объявленным свойством по типу 'Park'. Убедитесь, что свойство не было явно исключено из модели с помощью метода Ignore или аннотации данных NotMappedAttribute. Убедитесь, что это допустимое примитивное свойство.
Как мне сопоставить объект Park, чтобы его свойство LocationId попадало в столбец ParkId?
У меня есть это отображение, кстати:
public class Location
{
public virtual int LocationId { get; set; }
public virtual string Address { get; set; }
public virtual string City { get; set; }
public virtual string State { get; set; }
public virtual string ZipCode { get; set; }
}
public class Park : Location
{
public virtual string Name { get; set; }
}
Если это могло бы помочь, это возможно в EF 4.0 (через дизайнера), просто следуя инструкциям в главе 2-11 Рецептов Entity Framework 4.0, подход к решению проблемы. Теперь я пробую это сначала через код EF 4.1
[РЕДАКТИРОВАТЬ]
Если я изменю ParkId на LocationId, все в порядке. Однако, используя дизайнерский подход, можно отобразить LocationId на ParkId таблицы Park; Я хочу добиться того же самого с помощью кода в первую очередь
create table Park(
LocationId int not null primary key references Location(LocationId),
Name nvarchar(max) not null
);