Хорошо, я не на 100% согласен с тем, что вы здесь просите, но я сделаю это, предположив, что AddressType обнуляем.
public class TestClass
{
public AddressType? Type {get;set;}
public int TypeId
{
get
{
return Type.HasValue ? Type.Value.Id : 0;
}
}
}
Глядя на AddressType, хотя я предполагаю, что этотип поиска получен из какого-либо хранилища данных.Я использую шаблоны T4 для генерации таких списков поиска (которые не меняют значения между выпусками), как перечисления в моих приложениях.Что, если вы сделаете это, избавит вас от множества стрессов.
Теперь, если вам нужен раскрывающийся список значений AddressType в представлении бритвы, вам придется проделать небольшую работу вконтроллер (К счастью, не очень)
public class BetterTestClass
{
public AddressType? Type {get;set;}
}
... В вашем AddressController
public ActionResult Create(){
// the name in the ViewBag should match
// the property you want to have a list on
ViewBag.Type = repository
.AddressTypes
.ToList()
.Select(p => new SelectListItem {
Key = p.Id,
Value = p.Description});
ViewData.Model = new BetterTestClass();
return View();
}
Существует множество примеров, если вы ищете @ Html.DropDownList
РЕДАКТИРОВАТЬ
Действительно трудно понять, что вы пытаетесь достичь с помощью своего вопроса.Но я постараюсь помочь.Во-первых, правильно ли я понимаю ваш вопрос:
- TestClass имеет отношение 0..1 к AddressType
- Тип адреса имеет идентификатор, поскольку он является классом сущности
- По какой-то причине вы хотите, чтобы идентификатор AddressType устанавливался через пользовательский интерфейс, когда установлен AddressType.(который я изложил в своем ответе, заключая, что вам не понадобятся обязательные атрибуты)