Да, это возможно.Одним из распространенных примеров может быть таблица для реализации отношения «многие ко многим» между двумя таблицами.Например, Роли и Пользователь будут иметь отношение «многие ко многим», а сочетание двух идентификаторов даст хороший первичный ключ.Уловка - это атрибут DatabaseGenerate, который позволяет вам сказать EF, что вы сгенерируете значение для ключа, а не базу данных, как в случае с полями удостоверения int.
public class RoleUsers
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.None), Column(Order = 0)]
public int RoleId { get; set; }
public virtual Role Role { get; set; }
[Key, DatabaseGenerated(DatabaseGeneratedOption.None), Column(Order = 1)]
public Guid UserGuid { get; set; }
}
Однако в вашем случае выхотите отношение 0 или 1, поэтому вы должны
public class MyClass
{
public int Id { get; set; }
public int? AssignmentId { get; set; }
public virtual Assignment Assignment { get; set; }
...
}
nullable int (int?) допускает отношение 0 или один, и сгенерированный столбец может иметь значение null.Если это просто int, то столбец не может быть обнуляем, и с ним должно быть связано присвоение.