我想實現一個使用json將本地化字符串存儲在數據庫中使用實體框架的本地化邏輯,但是我需要幫助完成該對象。獲取在對象中聲明屬性的名稱
這裏是我的局部領域
[ComplexType]
public class MultiLanguageField : Dictionary<string, string>
{
public void AddRange(Dictionary<string, string> collection)
{
foreach (var item in collection)
{
this.Add(item.Key, item.Value);
}
}
[Column("Name")]
public string Serialized
{
get { return JsonConvert.SerializeObject(this); }
private set
{
if(string.IsNullOrEmpty(value))
{
Clear();
return;
}
var items = JsonConvert.DeserializeObject<MultiLanguageField>(value);
Clear();
AddRange(items);
}
}
}
然後,我只是申報財產在這樣一個對象。
public MultiLanguageField LocalizedField { get; set; }
我希望能夠在序列化方法來代替列屬性,這樣的數據庫字段需要申報財產的名稱(LocalizedField在這種情況下)。
我看着反射,但無法設法得到聲明屬性的名稱。
任何幫助表示讚賞。 如果您知道使用Entity Framework管理數據庫本地化的更好方法,歡迎您的意見!
THX
編輯
我會盡力澄清。默認情況下,數據庫中列的名稱將爲LocalizedField_Serialized(PropertyNameOnParent_PropertyNameOnComplexType)。
如何告訴實體框架只採用PropertyNameOnParent而不是追加「序列化」屬性。
這看起來像一個開始。我稍後再看。
Entity Framework complex type's columns naming convention