我有一個實體框架生成CodeModel。 (數據庫第一)。 所有這些都是數據庫中的視圖。 public class TypeCode { public string Code; 公共字符串描述 } 公共類TypeCode1 { 公共字符串的代碼; 公共字符串描述 }從數據庫加載大數據集。實體框架數據庫第一
每次應用程序打開時,我們都從Views中加載這些代碼。這隻需要一些時間(3分鐘),只是爲了加載一些初始化數據(每次應用程序打開時)。我有這樣的1000,這些類型碼類型 - TypeCode1,TypeCode2..All的的TypeCodes具有相同的結構代碼,描述
這是我們如何加載codeslist
using(SQlEntitiesContext _context = new SQlEntitiesContext())
{
TypeCodes = _context.TypeCode.ToList();
TypeCodes1 = _context.TypeCode1.ToList();.....
..
..
..
}
我想建立一個web服務它可以加載所有這些列表(它們不會更改),並在應用程序的每個實例需要時使用它們。最好不要查詢應用程序的每個實例的DB。 Webservice會做更多的事情,而不僅僅是Codes.It將加載和緩存所有的代碼開始。 目前,它需要因爲網絡
於是我開始了wcfService這樣
public interface ICodesService
{
[OperationContract]
Codes LoadCodeData();
}
[Serializable]
[DataContract]
public class Codes
{
[DataMember]
public List<TypeCode> TypeCodes{ get; set; }
[DataMember]
public List<TypeCode1> TypeCodes1{ get; set; }
}
}
LoadCodes.svc
public class LoadCodesService : ICodesService
{
Codes _AllCodes = new Codes();
public Codes LoadCodeData()
{
using (CodeEntities _codes = new CodeEntities())
{
_AllCodes.TypeCodes= _codes.TypeCode.ToList();
_AllCodes.TypeCodes1= _codes.TypeCodes.ToList();
}
}
在客戶端的長
private void button1_Click(object sender, EventArgs e)
{
LoadCodesServiceReference.CodesServiceClient proxy = new LoadCodesServiceReference.CodesServiceClient();
_codes = proxy.LoadCodeData();
}
我想知道,如果讓這些對象的靜態會是個好主意。對於正在加載的應用程序的每個實例。我們可以以某種方式緩存現有代碼並在需要時重用。什麼是可用的選項?使用DataReader不是一個選項。
這聽起來像你想在WCF,這不是實體框架涉及到使用緩存。您可以在這裏找到您的答案:http://msdn.microsoft.com/en-us/library/ee230443%28v=vs.100%29.aspx – Olaf