varlık çerçevesinde çalışmıyor sınıf alanım projesinde (poco?):Geç yükleme Ben tanımladık 5
public class Club
{
public Club()
{
ContactPersons = new HashSet<ContactPerson>();
}
public int Id { get; set; }
[Required]
[StringLength(64)]
public string Name { get; set; }
public virtual ICollection<ContactPerson> ContactPersons { get; set; }
}
public class ContactPerson
{
public virtual int Id { get; set; }
[StringLength(64)]
public virtual string FirstName { get; set; }
[StringLength(64)]
public virtual string LastName { get; set; }
}
benim MVC projede benim clubcontroller var: Son olarak
public ActionResult Create(CreateClubViewModel model)
{
Club club = new Club();
model.Initialize(club);
IClubDb clubDb = DependencyResolverHelper.IClubDbService;
clubDb.Create(club); // create club in db
}
public ActionResult Display(string domain)
{
try
{
IClubDb clubDb = DependencyResolverHelper.IClubDbService;
Club club = clubDb.Get(domain);
return View(club);
}
catch (Exception) // user is not logged iin
{
return View();
}
}
Ben tembel yüke m ContactPersons EF almak için her şeyi denedim
public Club Get(string name)
{
return DataContext.Clubs
//.Include(x => x.ContactPersons)
.Single(r => r.Name == name);
}
public int Create(Club club)
{
DataContext.Clubs.Add(club);
return DataContext.SaveChanges();
}
, benim DB projede ben oluşturmak ve kulüp almak y kulübü nesnesini Görüntüleme yönteminde Get club'ı çağırdığımda ancak ContactPersons'un her zaman sıfır uzunluğu vardır. Bununla birlikte, eğer .include'u kullanarak (bu kısmı yorumladım) yüklenen kişilerle ilgilenirseniz, o zaman ContactPersons'un birtakım kontakları vardır.
ben yanlış yapıyorum emin neyim:
- Ben poco sınıfları tanımlamak için kuralları izlediğinizi Ben LazyLoading
Ben benim bir kavram eksik düşünüyorum etkin olmalı, poco kulüp sınıf I veritabanına eklemek alanım varlık aynı zamanda. Neyi yanlış yapıyorum? Ne yapmam için tembel yükleme yapamıyorum?
'' Ilgili 'yerine bir' List 'kullanmayı deneyin. Bence EF, ICollection'ın –
Dominic'i kullanacak kadar akıllı olduğunu düşünmüyor, sadece öneriyi denedim, hala aynı, ContactPersons boş :( – user1780105
@Dominic: 'ICollection', oldukça iyi çalışıyor. 'bir siparişe işaret eder ve ilgili varlıklar belirli bir sırayla iade edilmez. –