.. и из-за другой ошибки в CTP5 этот атрибут будет игнорироваться вместе с именем свойства ParentPart ;-)

, это должно быть очень легко, но я рвал на себе волосы. Вот мой POCO (который имеет отношение к деталям машины, поэтому часть может содержаться в родительской части):

public class Part
{
   public int ID { get; set; }
   public string Name { get; set; }
   public Part ParentPart { get; set; }
}

Когда таблица базы данных создана, имена столбцов - это «ID», «Name» и «PartID». Как мне изменить имя этого последнего столбца на «ParentPartID»?

Ответы на вопрос(1)

вы хотите переименовать внешний ключ вНезависимая Ассоциация и это свободный код API, который сделает это:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Part>()
                .HasOptional(p => p.ParentPart)
                .WithMany()
                .IsIndependent()
                .Map(m => m.MapKey(p => p.ID, "ParentPartID"));
}

Однако из-за ошибки в CTP5 этот код выдается как исключение вассоциации, ссылающиеся на себя (который является вашим типом ассоциации). Обходной путь должен был бы изменить вашу ассоциацию наАссоциация иностранных ключей следующее:

public class Part
{
    public int ID { get; set; }
    public string Name { get; set; }                
    public int ParentPartID { get; set; }

    [ForeignKey("ParentPartID")]
    public Part ParentPart { get; set; }
}
 RedGlyph06 февр. 2011 г., 18:33
.. и из-за другой ошибки в CTP5 этот атрибут будет игнорироваться вместе с именем свойства ParentPart ;-)

Ваш ответ на вопрос