2014-01-20 4 views
0

Надеюсь, что это не было задано раньше, но вот моя проблема. Я создаю свои модели так:Orchard NHibernate Model, Обновление объекта

public class Survey 
{ 
    public virtual int Id { get; set; } 
    [Required(ErrorMessage="Survey Name is required")] 
    [Display(Name="Survey Name")] 
    public virtual string SurveyName { get; set; } 
    public virtual bool Disabled { get; set; }   
    public virtual IEnumerable<Question> Questions { get; set; } 
} 

public class Question 
{ 
    public virtual int Id { get; set; } 
    public virtual string QuestionText { get; set; } 
    public virtual int QuestionOrder { get; set; } 
    public virtual Enums.QuestionType QuestionType { get; set; } 
    public virtual Survey Survey { get; set; } 
    public virtual int Survey_Id { get; set; } 

} 

, который в свою очередь создал свою миграцию:

// Creating table Survey 
     SchemaBuilder.CreateTable("Survey", table => table 
      .Column("Id", DbType.Int32, column => column.PrimaryKey().Identity()) 
      .Column("SurveyName", DbType.String) 
      .Column("Disabled", DbType.Boolean) 
     ); 

     // Creating table Question 
     SchemaBuilder.CreateTable("Question", table => table 
      .Column("Id", DbType.Int32, column => column.PrimaryKey().Identity()) 
      .Column("QuestionText", DbType.String) 
      .Column("QuestionOrder", DbType.Int32) 
      .Column("QuestionType", DbType.String) 
      .Column("Survey_Id", DbType.Int32) 
     ); 

Я сделал предположение о том, что сад NHibernate работает точно так же, как EF в том, что на основе на соглашениях об именах мои объекты Survey и Survey_Id карты вопросов в том же поле в базе данных (моя миграция привела бы к тому, что я верю, что это правильно).

Вот моя проблема: Использование IRepository из сада, чтобы создать объект в базе данных производит SQL, который выглядит, как этот

INSERT INTO Question (QuestionText, QuestionOrder, QuestionType, Survey_Id, Survey_id) VALUES (?, ?, ?, ?, ?) 

, какие ошибки, потому что Survey_Id там дважды.

Любая помощь или совет были бы замечательными.

ответ

0

Для начала, вы не наследуете от ContentPart или ContentPartRecord. попробуйте эту ссылку: Creating-1-n-and-n-n-relations, помогли мне разобраться. Наряду с некоторыми другими учебниками.

+0

Привет, это потому, что это модели, которые я хочу создать с помощью сада, но не будут использоваться в качестве составной части. Спасибо за ваш вклад. –

+0

Мне пришлось снова взглянуть на мою. Я думаю, что это NHibernate. Измените «.Column» («Survey_Id», DbType.Int32) «на» .Column («Survey_id», DbType.Int32) ». – ErMasca