我在DB像耐心表和預約表 爲我創造了即病人,預約我WCFREST服務2個數據合同2個表。數據合同中加入條件
我用List<Patient>
填寫List對象的數據庫表信息和
List<Appointment>
填寫列表obj中的數據庫表的信息也是如此。
在這裏,我有一個經營合同從2個表數據使用加入聲明
爲此,我應該如何存儲結果返回,因爲我有2個不同的對象? 我是否需要通過組合這兩個表的字段來創建另一個DataContract?
我在DB像耐心表和預約表 爲我創造了即病人,預約我WCFREST服務2個數據合同2個表。數據合同中加入條件
我用List<Patient>
填寫List對象的數據庫表信息和
List<Appointment>
填寫列表obj中的數據庫表的信息也是如此。
在這裏,我有一個經營合同從2個表數據使用加入聲明
爲此,我應該如何存儲結果返回,因爲我有2個不同的對象? 我是否需要通過組合這兩個表的字段來創建另一個DataContract?
使用實體框架工作(表格第一種或模型第一種方法)。但是,因爲您已經有可用的表格,您可能需要將模型放在表格上。無論你選擇你的最終數據合同應該如下方式:
[DataContract]
public class Patient
{
[DataMember]
public int ID { get; set; }
[DataMember]
public string Name { get; set; }
[DataMember]
public List<Appointment> Appointments { get; set; }
}
[DataContract]
public class Appointment
{
[DataMember]
public int ID { get; set; }
[DataMember]
public DateTime AppointmentTime { get; set; }
[DataMember]
public Address Venue { get; set; }
}
技巧是讓DataContract
每個表的。您不必創建多個數據合同來滿足您的需求。 服務合同應如下:
[ServiceContract]
public interface IPatientService
{
[OperationContract]
List<Patient> GetAllPatients();
}
然後可以使用由EF結合延伸部設置在的DbContext(依賴注入),如下。或者,如果您不希望繼續使用構造函數並創建對象初始化,則只需刪除構造函數即可。這是一個示例。
public class PatientService : IPatientService
{
HospitalDbContext _context;
public PatientService(HospitalDbContext _context)
{
this._context = _context;
}
public List<Patient> GetAllPatients()
{
return (from patient in _context.Patients
select patient).ToList<Patient>();
}
}
你可以自由地在這裏加入LINQ
條件採取加盟等操作爲好。
[DataContract]
class A
{
[DataMember]
public string PatientName { get; set; }
// more stuff.
}
[DataContract]
class B
{
[DataMember]
public string HospitalName { get; set; }
// more stuff.
}
[DataContract]
class C
{
[DataMember]
public A prop1 { get; set; }
[DataMember]
public B prop2 { get; set; }
// more stuff.
}