ورود

View Full Version : سوال: کلاس استان و شهر



A.Eimani
سه شنبه 30 دی 1393, 07:35 صبح
سلام من با MVC5 و EF6 میحوام لیستی از استان ها و شهرهاش دخیره کنم
کلاس استان:

public class State
{
internal class Configuration:EntityTypeConfiguration<State>
{
public Configuration()
{
HasKey(p => p.StateId);
}
}

public Int64 StateId { get; set; }

[Required]
public string TitlePersian { get; set; }

[Required]
public string TitleEnglish { get; set; }

public virtual IList<City> Cities { get; set; }
}


کلاس شهر:

public class City
{
[Key]
public Int64 Id { get; set; }

[Required]
public string TitlePersian { get; set; }

[Required]
public string TitleEnglish { get; set; }

[Required]
public Int64 StateId { get; set; }

[ForeignKey("StateId")]
public virtual State State { get; set; }
}


جداول در بانک درست ساخته میشه
ولی مشکل اینه وقتی به شکل زیر میخوام اطلاعات رو وارد کنم ارور میده که:
Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.


db.States.Add(new State()
{
TitlePersian = "آذربايجان شرقي",
TitleEnglish = "Azerbaijan Sharghi",
Cities = new List<City>
{
new City {TitlePersian = "آذر شهر", TitleEnglish = "Azar Shahr"},
new City {TitlePersian = "اسکو", TitleEnglish = "Osko"}
}
});

aroshanzamir
سه شنبه 30 دی 1393, 09:04 صبح
سلام من با MVC5 و EF6 میحوام لیستی از استان ها و شهرهاش دخیره کنم
کلاس استان:

public class State
{
internal class Configuration:EntityTypeConfiguration<State>
{
public Configuration()
{
HasKey(p => p.StateId);
}
}

public Int64 StateId { get; set; }

[Required]
public string TitlePersian { get; set; }

[Required]
public string TitleEnglish { get; set; }

public virtual IList<City> Cities { get; set; }
}


کلاس شهر:

public class City
{
[Key]
public Int64 Id { get; set; }

[Required]
public string TitlePersian { get; set; }

[Required]
public string TitleEnglish { get; set; }

[Required]
public Int64 StateId { get; set; }

[ForeignKey("StateId")]
public virtual State State { get; set; }
}


جداول در بانک درست ساخته میشه
ولی مشکل اینه وقتی به شکل زیر میخوام اطلاعات رو وارد کنم ارور میده که:
Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.


db.States.Add(new State()
{
TitlePersian = "آذربايجان شرقي",
TitleEnglish = "Azerbaijan Sharghi",
Cities = new List<City>
{
new City {TitlePersian = "آذر شهر", TitleEnglish = "Azar Shahr"},
new City {TitlePersian = "اسکو", TitleEnglish = "Osko"}
}
});


سلام به اعتبار سنجی اشاره داره میگه شما در city table یک property با نام StateId تعریف کرده اید و آن را Required گذاشته اید و در اینجا مقداری به اون ندادید

Required را بردارید درست میشه ...
امتحان کن

A.Eimani
سه شنبه 30 دی 1393, 23:15 عصر
نه اون فیلد چون کلید خارجی شده اتوماتیک پر میشه توی این روش نیازی به مقدار دهی نداره
مشکل این بود من در پارت بعدی داشتم nullvalue ارسال میکردم که قبل savechange ارور ایجاد میکرد ولی ارور رو توی این پارت نشون میداد

مرسی داداش حل شد