如何告诉Breeze哪个属性是实体密钥

时间:2014-01-27 10:57:25

标签: .net metadata breeze entitykey

如果我有一个POCO-Object(与EF或任何其他框架无关),它看起来如下(来自NoDb-Example):

public class TodoItem {
  public int TodoItemId { get; set; }
  public string Title { get; set; }
  public bool IsDone { get; set; }
}

Breeze如何知道,或者我如何告诉Breeze,TodoItemId是EntityKey?我是否必须搞乱“MetaData”-By-Hand(http://www.breezejs.com/documentation/metadata-hand-depth)?我目前还不太了解EntityKey-Concept如何配置/影响。

我可以使用某种.NET属性吗?我在服务器端使用.NET-Framework 4.5和Web API。

1 个答案:

答案 0 :(得分:0)

我看到你指的是Breeze NoDb example。该示例都是关于不在服务器上使用Entity Framework,它与您的场景匹配(只是通过Web API公开的普通POCO)。

在这种服务器风格中,服务器不会公开模型元数据,因此Breeze无法自动知道模型中的实体以及它们之间的关系。相反,您需要在客户端上构建此信息,因为您已经正确猜到了。

要了解构建客户端元数据时涉及的内容,请查看Breeze NoDb示例中的Scripts\app\todo.model.js文件。在那里,您将看到如何构建元数据以及在描述模型时如何使用“isPartOfKey”属性来告诉Breeze哪个属性是主键。

另外,如果您不想使用Entity Framework进行持久化,但是您想要从POCO自动生成服务器上的元数据,那么您应该在Breeze中读取Entity Framework as a metadata design tool文档。