Рейтинг:
9
Richard Deeming
Это ужасная идея!
Создайте единую таблицу для ваших контактов и добавьте связь внешнего ключа с таблицей пользователей.
public class User
{
[Key]
public Guid Id { get; set; }
public virtual IList<Contact> Contacts { get; set; }
... Other properties ...
}
public class Contact
{
[Key]
public Guid Id { get; set; }
public Guid UserId { get; set; }
public virtual User User { get; set; }
[Required]
[MaxLength(20), MinLength(6)]
public string Phone { get; set; }
[MaxLength(45), MinLength(2)]
public string Name { get; set; }
[MaxLength(100)]
public string Email { get; set; }
}
Отношения, свойства навигации и внешние ключи - EF6 | Microsoft Docs[
^]
Вы также захотите проверить свой
[Key]
определение - большинство систем допускают несколько контактов с одним и тем же телефонным номером, даже для одного и того же родительского объекта. Если вам действительно нужен уникальный телефонный номер для каждого пользователя, создайте составной ключ.
public class Contact
{
[Key, Column(Order = 0)]
public Guid UserId { get; set; }
public virtual User User { get; set; }
[Required]
[MaxLength(20), MinLength(6)]
[Key, Column(Order = 1)]
public string Phone { get; set; }
... Other properties ...
}
Составные ключи - Code First Data Annotations - EF6 | Microsoft Docs[
^]
Enobong Adahada
Спасибо за ответ,
На самом деле то, что я хочу сделать, это создать таблицу для каждого пользователя входа в систему, используя его идентификатор пользователя в качестве имени таблицы в БД, пожалуйста, как мне это сделать.
Еще раз спасибо.
Richard Deeming
И, как я уже сказал, это ужасная идея. Ваша база данных будет в абсолютном беспорядке, и полностью недоступна.
Есть причина, по которой Entity Framework не позволяет вам делать такие вещи.
Если вы абсолютно настаиваете на продолжении этой ужасной идеи, вам нужно будет использовать raw ADO.NET, и управлять запросами самостоятельно.
Enobong Adahada
Большое спасибо Ричарду за ваш ответ, я заглянул в него, это действительно плохая идея иметь несколько таблиц с одной и той же структурой.
Спасибо еще раз.