Model. В таблицах указал
CONSTRAINT [FK_Profiles_Infos] FOREIGN KEY ([InfoId])
REFERENCES [dbo].[Infos] ([Id]) ON DELETE SET NULL
CONSTRAINT [FK_Сars_Infos] FOREIGN KEY ([InfoId])
REFERENCES [dbo].[Infos] ([Id]) ON DELETE SET NULL
namespace Meditid.Models
{
public class Info
{
[Key]
public int Id { get; set; }
public virtual Profile Profile { get; set; }
public virtual Collection<Car> Car { get; set; }
}
public class Profile
{
public int Id { get; set; }
public string FirstName { get; set; }
public DateTime BirthDate { get; set; }
public string LastName { get; set; }
public string MiddleName { get; set; }
public int InfoId { get; set; }
public virtual Info info { get; set; }
}
public class Car
{
public int Id { get; set; }
public string CarName { get; set; }
public string CarNumber { get; set; }
public int InfoId { get; set; }
public virtual Info info { get; set; }
}
public class SContext : DbContext
{
public DbSet<Profile> Profiles { get; set; }
public DbSet<Car> Cars { get; set; }
public DbSet<Info> Infos { get; set; }
}
}
Функция формирования json'a из 3 таблиц
public string Lowx()
{
var query = db.Infos
.Include(x => x.Profile)
.Include(x => x.Car)
.ToList();
return JsonConvert.SerializeObject(query.ToList());
}
Выдает исключение:
System.InvalidOperationException: "Unable to determine the principal end of an association between the types 'Meditid.Models.Profile' and 'Meditid.Models.Info'. The principal end of this association must be explicitly configured using either the relationship fluent API or data annotations."
Используйте DataAnnotation
(Подробнее):
namespace Meditid.Models
{
public class Info
{
[Key]
public int Id { get; set; }
public virtual Profile Profile { get; set; }
public virtual ICollection<Car> Car { get; set; }
}
public class Profile
{
[Key]
public int Id { get; set; }
public string FirstName { get; set; }
public DateTime BirthDate { get; set; }
public string LastName { get; set; }
public string MiddleName { get; set; }
public int InfoId { get; set; }
[ForeignKey("InfoId")]
public virtual Info Info { get; set; }
}
public class Car
{
public int Id { get; set; }
public string CarName { get; set; }
public string CarNumber { get; set; }
public int InfoId { get; set; }
[ForeignKey("Info")]
public virtual Info info { get; set; }
}
}
или же можно использовать FluentAPI
(Подробнее):
public class SContext : DbContext
{
public DbSet<Info> Infos { get; set; }
public DbSet<Profile> Profiles { get; set; }
public DbSet<Car> Cars { get; set; }
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
builder.Entity<Info>()
.HasOne(i => i.Profile)
.WithOne(p => p.Info)
.HasForeignKey<Profile>(p => p.InfoId);
builder.Entity<Info>()
.HasMany(i => i.Cars)
.WithOne(c => c.Info)
.HasForeignKey<Car>(c => c.InfoId);
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Подскажите, пожалуйста, как можно объединить две коллекции в одну, чтобы получилась не сплошная строка например:
В строке определения переменной text возникает ошибка StackOverflow и не знаю как можно избавиться от его потому что условие обязательное
Метод обрабатывает нажатие клавишы на клавиатуре (глобальный хук) и скрывает элементы на экранеОднако почему-то после активации if(!SomeOpened)...