helpsos
پنج شنبه 05 تیر 1393, 17:37 عصر
سلام به همه
راستش توی جستجو یکمی گیج شدم خواستم ببینم شما می تونید کمکم کنید.
من یه کلاس دارم برای مخاطب هام به کد زیر:
public class Contact
{
public int ContactId { get; set; }
public string FName { get; set; }
public string LName { get; set; }
public string FatherName { get; set; }
public string Email { get; set; }
public virtual ICollection<Phone> Phones { get; set; }
و یک کلاس هم دارم برای شماره تلفن ها به کد زیر:
public class Phone
{
public int PhoneId { get; set; }
public string PhoneNumber { get; set; }
public string PhoneNote { get; set; }
public string PhoneAddress { get; set; }
public int PhoneTypeId { get; set; }
public virtual PhoneType PhoneType { get; set; }
[ForeignKey("ContactId")]
public virtual Contact Contact { get; set; }//یه مخاطب می تونه چندین شماره داشته باشه
public int ContactId { get; set; }
حالا می خواستم که یه سرچ براش بنویسم ولی به مشکل خوردم
این کد جستجوی منه:
var listContacts = db.Contacts.Include(p => p.Phones).AsQueryable();
if (searchContact.ByName)
listContacts = listContacts.Where(c => c.LName.Contains(searchContact.Name));
if (searchContact.ByNumber)
{
listContacts = listContacts.Where(c=>c.Phones.);
}
var phonelistmodel = await
listContacts.OrderBy(p => p.ContactId)
.Skip(page * count)
.Take(count)
.Select(c => new ListPhoneNumberViewmodel()
{
ContactId = c.ContactId,
Email = c.Email,
Name = c.FName + " " + c.LName,
Phones = c.Phones
}).ToListAsync();
ولی توی این قسمت
if (searchContact.ByNumber)
{
listContacts = listContacts.Where(c=>c.Phones.);
}
من به PhoneNumber دسترسی ندارم که براش شرط رو اعمال کنم.
باید چیکار کنم؟
و مگه Include حکم Join رو نداره پس چرا داره اذیت می کنه؟
راستش توی جستجو یکمی گیج شدم خواستم ببینم شما می تونید کمکم کنید.
من یه کلاس دارم برای مخاطب هام به کد زیر:
public class Contact
{
public int ContactId { get; set; }
public string FName { get; set; }
public string LName { get; set; }
public string FatherName { get; set; }
public string Email { get; set; }
public virtual ICollection<Phone> Phones { get; set; }
و یک کلاس هم دارم برای شماره تلفن ها به کد زیر:
public class Phone
{
public int PhoneId { get; set; }
public string PhoneNumber { get; set; }
public string PhoneNote { get; set; }
public string PhoneAddress { get; set; }
public int PhoneTypeId { get; set; }
public virtual PhoneType PhoneType { get; set; }
[ForeignKey("ContactId")]
public virtual Contact Contact { get; set; }//یه مخاطب می تونه چندین شماره داشته باشه
public int ContactId { get; set; }
حالا می خواستم که یه سرچ براش بنویسم ولی به مشکل خوردم
این کد جستجوی منه:
var listContacts = db.Contacts.Include(p => p.Phones).AsQueryable();
if (searchContact.ByName)
listContacts = listContacts.Where(c => c.LName.Contains(searchContact.Name));
if (searchContact.ByNumber)
{
listContacts = listContacts.Where(c=>c.Phones.);
}
var phonelistmodel = await
listContacts.OrderBy(p => p.ContactId)
.Skip(page * count)
.Take(count)
.Select(c => new ListPhoneNumberViewmodel()
{
ContactId = c.ContactId,
Email = c.Email,
Name = c.FName + " " + c.LName,
Phones = c.Phones
}).ToListAsync();
ولی توی این قسمت
if (searchContact.ByNumber)
{
listContacts = listContacts.Where(c=>c.Phones.);
}
من به PhoneNumber دسترسی ندارم که براش شرط رو اعمال کنم.
باید چیکار کنم؟
و مگه Include حکم Join رو نداره پس چرا داره اذیت می کنه؟