[英]Silvelight&RIA Services&Entity Framework problems with partial classes and complex types there
我正在將RIA Services與Entity Framework和Silverlight用作客戶端應用程序。 我已經通過部分類為EF實體提供了一些自定義屬性。 數據庫中有一個XML類型的字段,它作為字符串映射到Entity Framework。 而且我使用部分類將該XML字符串反序列化為真實對象。
這是EF配置實體的部分類:
public partial class Configuration
{
private ServiceCredentials _serviceCredentialsObject;
[DataMember]
public ServiceCredentials ServiceCredentialsObject
{
get
{
return this._serviceCredentialsObject
?? (this._serviceCredentialsObject = this.DeserializeServiceCredentialsToObject());
}
set
{
this._serviceCredentialsObject = value;
this.SerializeServiceCredentialsObject();
}
}
public ServiceCredentials DeserializeServiceCredentialsToObject()
{
if (string.IsNullOrEmpty(this.ServiceCredentials))
{
return null;
}
var result = XmlSerializerHelper.Deserialize<ServiceCredentials>(this.ServiceCredentials);
result.FileEncoding = result.FileEncoding ?? Encoding.UTF8;
return result;
}
public void SerializeServiceCredentialsObject()
{
if (this.ServiceCredentialsObject == null)
{
this.ServiceCredentials = null;
return;
}
this.ServiceCredentials = XmlSerializerHelper.Serialize(this.ServiceCredentialsObject);
}
}
這是我要反序列化的對象:
[Serializable]
public class ServiceCredentials
{
public NetworkCredential Credential { get; set; }
public Encoding FileEncoding { get; set; }
[XmlIgnore]
public long HistoryID { get; set; }
public string LoadFileStoragePath { get; set; }
public string ManualLoadFilePath { get; set; }
public bool NeedAuthorization { get; set; }
[XmlIgnore]
public string ProviderID { get; set; }
public string SourceUrl { get; set; }
public bool AutomaticTransferToProductive { get; set; }
}
當我嘗試在Silverlight客戶端上將Configuration Entity與生成的代碼一起使用時,發現Configuration類中沒有ServiceCredentialsObject的問題。 如果我創建一個新文件,則不會將其添加到DomainService.metadata.cs中。 如果我將ServiceCredentialsObject手動添加到DomainService.metadata.cs,則可以在重建后在客戶端上訪問它,但在那里只能找到具有簡單類型的屬性。 例如,可以訪問HistoryID,SourceUrl,AutomaticTransferToProductive,但沒有生成的屬性
公共NetworkCredential憑據{get; 組; } public Encoding FileEncoding {get; 組; }
我怎樣才能解決這個問題?
我找到了解決此問題的唯一方法。 解決方案只是在客戶端從實體框架反序列化xml字段。 我已經在Silverlight中為生成的代碼創建了部分類Configuration。 我不知道這是否是最好的解決方案,但是它可以工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.