سلام
من یه سرویس میخوام راه بندازم که با استفاده از WCF و EntityFramework به اطلاعات دیتابیس سرور از طریق نرم افزار ویندوزی دسترسی داشته باشم
برای مثال دو تا جدول شهر و استان مه لبنک به هم هستن رو در نظر بگیرید :
ستون های استان :
ID , Name
ستون های شهرستان :
ID , PK_ID , Name
مدل ها به صورت زیر هستش :
namespace clinicService.Database
{
using System.Runtime.Serialization;
using System;
using System.Collections.Generic;
using System.ServiceModel;
[DataContract]
public partial class Ostan
{
public Ostan()
{
this.Citys = new HashSet<City>();
}
[DataMember]
public int ID { get; set; }
[DataMember]
public string Title { get; set; }
[DataMember]
public virtual ICollection<City> Citys { get; set; }
}
}
namespace clinicService.Database
{
using System.Runtime.Serialization;
using System;
using System.Collections.Generic;
[DataContract]
public partial class City
{
[DataMember]
public int ID { get; set; }
[DataMember]
public Nullable<int> PK_Ostan { get; set; }
[DataMember]
public string Title { get; set; }
[DataMember]
public virtual Ostan Ostan { get; set; }
}
}
و تنظیمات :
namespace clinicService.Database
{
using System;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
public partial class spClinicDBEntities : DbContext
{
public spClinicDBEntities()
: base("name=spClinicDBEntities")
{
Configuration.ProxyCreationEnabled = false;
Configuration.LazyLoadingEnabled = true;
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<City> Citys { get; set; }
public virtual DbSet<Ostan> Ostans { get; set; }
}
}
با این تعاریف هیچ مشکلی در استفاده عادی از سرویس وجود نداره تا زمانی که مدل ها بدون فرزندان خونده بشن
یعنی زمانی که لیست استان ها رو فراخوانی میکنی بدون مشکل اجرا میشه:
os=bl.Ostans.ToList();
ولی وقتی کار به صورت زیر میشه که شهرستان های استان هم ارسال بشه :
os=bl.Ostans.Include("Citys").ToList();
دچار ارور میشیم و میدونم مشکل از کلاس مجازی استان هستش چون در این حالت وقتی بریک پونت میگیری میبینی که تابع به صورت کامل در سرور اجرا شده و ارسال شده اما نمیشه دریافتش کرد
مثل حالتی که proprty ها Datamember نباشن
کسی راه حل رومیدونه؟؟؟
اینم ارور :
An error occurred while receiving the HTTP response to http://localhost:63259/clinicService.svc. This could be due to the service endpoint binding not using the HTTP protocol. This could also be due to an HTTP request context being aborted by the server (possibly due to the service shutting down). See server logs for more details.