Я бы разделил эту таблицу на две таблицы. Один для Cat1 и один для Cat2 с внешним ключом для Cat1. Таким образом, у вас не будет много повторяющихся записей Cat1, и вы можете легко сопоставить Cat2 с правильным Cat1.
Это сделает его «один ко многим» между Cat1 и Cat2.
Я бы не беспокоился о том, какие именно значения Id, поскольку это не имеет значения.
Важнее отображение, а также то, что ваши индексы настроены правильно.
Итак, что-то вроде этого я представляю:
Category 1:
ID CategoryLevel1Name
1 PC
2 Laptop
3 Mac
Category 2:
ID CategoryLevel1Id CategoryLevel2Name
1 1 AllInOne
2 1 Classic PC
3 2 NetBook
4 2 Class Laptop
5 3 MacBook Pro
public class Category1
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string CategoryLevel1Name { get; set; }
public ICollection<Category2> Category2s { get; set; }
}
public class Category2
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public int CategoryLevel1Id { get; set; }
public string CategoryLevel2Name { get; set; }
[ForeignKey("CategoryLevel1Id ")]
public Category1 Category1 { get; set; }
}
Отказ от ответственности: код не проверен.
Добавьте или перезапишите заголовок Авторизации перед передачей любого запроса к конечной точке. Заголовок авторизации может быть трудно кодирован, это - просто кодировка Base 64 строки "username:password" (без кавычек.)
Включают mod_headers модуль если не уже сделанный.
RequestHeader set Authorization "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="
Для выполнения этого условно включите mod_setenvif, например, все еще попросите основной пароль в случае локальных запросов:
SetEnvIf Remote_Addr "127\.0\.0\.1" localrequest
RequestHeader set Authorization "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==" env=!localrequest
ПРИМЕР
# ALL remote users ALWAYS authenticate against reverse proxy's
# /www/conf/passwords database
#
<Directory /var/web/pages/secure>
AuthBasicProvider /www/conf/passwords
AuthType Basic
AuthName "Protected Area"
Require valid-user
</Directory>
# reverse proxy authenticates against master server as:
# Aladdin:open sesame (Base64 encoded)
#
RequestHeader set Authorization "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="