Как сообщить Breeze, какое свойство является ключом Entity

Если у меня есть POCO-объект (ничего общего с 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 и веб-API для серверной части.

1 ответ

Решение

Я вижу, вы ссылаетесь на пример Breeze NoDb. В этом примере речь идет не об использовании Entity Framework на сервере, который соответствует вашему сценарию (просто POCO, предоставляемые через веб-API).

В этом стиле сервера никакие метаданные модели не предоставляются сервером, поэтому Breeze не может автоматически знать, какие объекты есть в вашей модели и как они связаны. Вместо этого вам нужно построить эту информацию на клиенте, как вы правильно догадались.

Чтобы получить представление о том, что происходит при создании метаданных на стороне клиента, ознакомьтесь с Scripts\app\todo.model.js файл в примере Breeze NoDb. Там вы увидите, как создаются метаданные и как атрибут "isPartOfKey" используется при описании модели, чтобы сообщить Breeze, какое свойство является первичным ключом.

Кроме того, если вы не хотите использовать Entity Framework для сохранения, но хотите автоматически генерировать метаданные на сервере из ваших POCO, вы должны прочитать Entity Framework как инструмент проектирования метаданных в документации Breeze.,

Другие вопросы по тегам