0
我嘗試手動創建數據模型的元數據時遇到了一些問題。更具體地說,我使用以下命令創建元數據的字符串表示,然後將其保存到本地文件中。在BreezeJS中創建手動元數據
var metadata = JObject.Parse(new EFContextProvider<HelixDtoContext>().Metadata());
雖然有一些缺失的信息,當我這樣做。以下Dto
public class LayoutManagerState
{
public string Widgets { get; set; }
}
public class AppState
{
public int Id{ get; set; }
public ViewOptionsDialogState ViewOptionsDialogState { get; set; }
public LayoutManagerState LayoutManagerState { get; set; }
...
}
我期望元數據包含LayoutManagerState複雜屬性;但它不這樣做。
"entityType": [
{
"name": "AppState",
"key": {
"propertyRef": {
"name": "Id"
}
},
"property": [
{
"name": "Id",
"type": "Edm.Int32",
"nullable": "false",
"annotation:StoreGeneratedPattern": "Identity"
},
{
"name": "ViewOptionsDialogState",
"type": "Edm.Self.ViewOptionsDialogState",
"nullable": "false"
}
]
},
正如您所見,元數據中沒有名稱爲LayoutManagerState
的屬性。
我找到了問題;我的解決方案中有以下項目。 1)MyApp.Models 2)MyApp.Dtos 3)MyApp.UI 4)MyApp.MetadataGenerator。當MVC應用程序啓動時(MyAPP.UI),我調用返回元數據字符串的MyApp.MeatadataGenerator中的方法。當我這樣做時,我沒有得到我的數據模型的完整表示。但是,如果我將MetadataGenerator作爲獨立控制檯應用運行,那麼LayoutManagerState將包含在元數據中。 – ppoliani