ورود

View Full Version : سوال: مدل یک به چند در EF CodeFirst



morika
پنج شنبه 19 تیر 1393, 18:14 عصر
سلام
من دوتا کلاس برای EF CodeFirst دارم
public class Team {
[DatabaseGenerated(DatabaseGeneratedOption.None)]
[Key]
[Required(ErrorMessage = "*")]
public int Id { get; set; }
[Required(ErrorMessage = "*")]
public string Name { get; set; }
[Required(ErrorMessage = "*")]
public string League { get; set; }
public ICollection<Player> Player { get; set; }
}

public class Player
{
public int Id { get; set; }
public int TeamId { get; set; }
[Required(ErrorMessage="*")]
public string Name { get; set; }
[Required(ErrorMessage = "*")]
public string Surename { get; set; }
[Required(ErrorMessage = "*")]
public int Age { get; set; }
[Required(ErrorMessage = "*")]
public string Post { get; set; }
[Required(ErrorMessage = "*")]
public string Nationality { get; set; }
[ForeignKey("TeamId")]
public virtual Team Team { get; set; }
}

به ظاهر وجود یا عدم وجود اون خط آخر در کلاس Team اصلا مهم نیست چون من به با fluent api کلید خارجی رو در کلاس Player مشخص کردم. درسته؟
ممنون

hp1361
جمعه 20 تیر 1393, 09:18 صبح
سلام

شما اعلام کردید که کلاس Team با کلاس Player ارتباط دارند:

public virtual Team Team { get; set; }


اما بعضی مواقع نیازه که Id رو بصورت دستی تغییر بدید و اون در حالتی ممکنه که کد زیر رو گذاشتید:

public int TeamId { get; set; }
[ForeignKey("TeamId")]


در غیر اینصورت با اینکه در کد خودتون Id رو تغییر میدید اما EF خودش یک نمونه جدید میسازه و ذخیره میکنه

http://www.dotnettips.info/post/926/%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-%DA%A9%D9%84%DB%8C%D8%AF%D9%87%D8%A7%DB%8C-%D8%A7%D8%B5%D9%84%DB%8C-%D9%88-%D8%AE%D8%A7%D8%B1%D8%AC%DB%8C-%D8%AF%D8%B1-ef-code-first

موفق باشیم