Надеюсь, что это не было задано раньше, но вот моя проблема. Я создаю свои модели так: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 там дважды.
Любая помощь или совет были бы замечательными.
Привет, это потому, что это модели, которые я хочу создать с помощью сада, но не будут использоваться в качестве составной части. Спасибо за ваш вклад. –
Мне пришлось снова взглянуть на мою. Я думаю, что это NHibernate. Измените «.Column» («Survey_Id», DbType.Int32) «на» .Column («Survey_id», DbType.Int32) ». – ErMasca