PDA

View Full Version : مشکل در عدم ایجاد جداول در دیتابیس با EntityFramework



milan2004
جمعه 15 بهمن 1395, 12:15 عصر
سلام دوستان
من با استفاده از mvc , EntityFrameWork 6 میخوام جداولم رو در دیتابیس ایجاد کنم اما این پیام برام داده میشه لطفا کمک کنید :

Introducing FOREIGN KEY constraint 'FK_dbo.PhysicalContents_dbo.Categories_Category_I d' on table 'PhysicalContents' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.
Could not create constraint or index. See previous errors.



public class PhysicalContent
{
public virtual Guid? Id { get; set; }
public virtual string FileName { get; set; }
public virtual int Size { get; set; }
public virtual string Extention { get; set; }
public virtual string Url { get; set; }
public virtual Guid CategoryRefId { get; set; }
public virtual byte[] RowVersion { get; set; }
public virtual Person Person { get; set; }
public virtual About About { get; set; }
public virtual Article Article { get; set; }
[ForeignKey("CategoryRefId")]
public virtual Category Category { get; set; }
public virtual Contact Contact { get; set; }
public virtual Log Log { get; set; }
public virtual Message Message { get; set; }
public virtual News News { get; set; }
public virtual Product Product { get;set; }
public virtual Role Role { get; set; }
public virtual Service Service { get; set; }
public virtual SocialNetWorks SocialNetWorks { get; set; }
public virtual Video Video { get; set; }

}
}



public class Category
{
public virtual Guid Id { get; set; }
public virtual string Name { get; set; }
public virtual string NameEn { get; set; }
public virtual byte Order { get; set; }
public virtual Enums.DeleteState DeleteState { get; set; }
public virtual byte[] RowVersion { get; set; }
public virtual DateTime? AddedDateTime { get; set; }
public virtual ICollection<Category> SubCategory { get; set; }
public virtual ICollection<Service> Services { get; set; }
public virtual ICollection<Product> Products { get; set; }
public virtual ICollection<Article> Articles { get; set; }
public virtual ICollection<News> Newses { get; set; }
public virtual ICollection<Video> Videos { get; set; }
public virtual Person Person { get; set; }
public virtual ICollection<PhysicalContent> PhysicalContents { get; set; }


}
}

alireza_s_84
جمعه 15 بهمن 1395, 13:27 عصر
سلام دوستان
من با استفاده از mvc , EntityFrameWork 6 میخوام جداولم رو در دیتابیس ایجاد کنم اما این پیام برام داده میشه لطفا کمک کنید :

Introducing FOREIGN KEY constraint 'FK_dbo.PhysicalContents_dbo.Categories_Category_I d' on table 'PhysicalContents' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.
Could not create constraint or index. See previous errors.



public class PhysicalContent
{
public virtual Guid? Id { get; set; }
public virtual string FileName { get; set; }
public virtual int Size { get; set; }
public virtual string Extention { get; set; }
public virtual string Url { get; set; }
public virtual Guid CategoryRefId { get; set; }
public virtual byte[] RowVersion { get; set; }
public virtual Person Person { get; set; }
public virtual About About { get; set; }
public virtual Article Article { get; set; }
[ForeignKey("CategoryRefId")]
public virtual Category Category { get; set; }
public virtual Contact Contact { get; set; }
public virtual Log Log { get; set; }
public virtual Message Message { get; set; }
public virtual News News { get; set; }
public virtual Product Product { get;set; }
public virtual Role Role { get; set; }
public virtual Service Service { get; set; }
public virtual SocialNetWorks SocialNetWorks { get; set; }
public virtual Video Video { get; set; }

}
}



public class Category
{
public virtual Guid Id { get; set; }
public virtual string Name { get; set; }
public virtual string NameEn { get; set; }
public virtual byte Order { get; set; }
public virtual Enums.DeleteState DeleteState { get; set; }
public virtual byte[] RowVersion { get; set; }
public virtual DateTime? AddedDateTime { get; set; }
public virtual ICollection<Category> SubCategory { get; set; }
public virtual ICollection<Service> Services { get; set; }
public virtual ICollection<Product> Products { get; set; }
public virtual ICollection<Article> Articles { get; set; }
public virtual ICollection<News> Newses { get; set; }
public virtual ICollection<Video> Videos { get; set; }
public virtual Person Person { get; set; }
public virtual ICollection<PhysicalContent> PhysicalContents { get; set; }


}
}



ازطریق Flaunt API خاصیت CascadeDelete رو برای کلید خارجی غیرفعال کنید

milan2004
جمعه 15 بهمن 1395, 14:14 عصر
ازطریق Flaunt API خاصیت CascadeDelete رو برای کلید خارجی غیرفعال کنید

ممنون بایت پاسخی که دادین
این fluent api برای physicalcontent من هست ببینید درسته :



public PhysicalContentConfig()
{
HasRequired(x => x.Category).WithMany(s => s.PhysicalContents).WillCascadeOnDelete(false);
Property(x => x.Extention).HasColumnType("varchar").HasMaxLength(4).IsRequired();
Property(x => x.Url).HasColumnType("nvarchar").HasMaxLength(250).IsRequired();
Property(x => x.FileName).HasColumnType("nvarchar").HasMaxLength(55).IsRequired();
Property(x => x.Size).IsOptional();
Property(x => x.RowVersion).IsRowVersion();
}
باز هم همان خطا را می دهد