希望以前没有问过,但这是我的问题。我像这样创建我的模型:
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)
);
我假设Orchard NHibernate的工作方式与EF相同,基于命名约定我的Survey和Survey_Id属性问题映射到数据库中的同一个字段(我的迁移会让我相信这是正确的)。
这是我的问题:使用Orchard的IRepository在数据库中创建一个对象会生成如下所示的SQL
INSERT INTO Question (QuestionText, QuestionOrder, QuestionType, Survey_Id, Survey_id) VALUES (?, ?, ?, ?, ?)
哪些错误,因为Survey_Id有两次。
任何帮助或建议都会很棒。
答案 0 :(得分:0)
对于初学者,您不是从ContentPart或ContentPartRecord继承的。 试试这个链接:Creating-1-n-and-n-n-relations,确实帮助我理解。 以及其他一些教程。