У меня есть модель класса с классовой принципиальностью, которая служит главной и содержит связанную с 1: 1, а также 1: N-обращение как к зависимости. Как настроить эти отношения, чтобы вставить, обновлять и удалять работы без ошибок? < /P>
Это классы модели данных: < /p>
public class PrincipalEntity
{
public PrincipalEntity() { }
public PrincipalEntity(Guid id, string number, string name, DependentEntity dependent, List dependents)
{
Id = id;
Number = number;
Name = name;
Dependent = dependent;
Dependents = dependents;
}
public Guid Id { get; set; }
public string Number { get; set; } = null!;
public string Name { get; set; } = null!;
public DependentEntity Dependent { get; set; } = null!;
public List Dependents { get; set; }
}
public class DependentEntity
{
public DependentEntity() { }
public DependentEntity(Guid id, string name)
{
Id = id;
Name = name;
}
public Guid Id { get; set; }
public string Name { get; set; } = null!;
public PrincipalEntity PrincipalEntityWithSingleDependent { get; set; } = null!;
public Guid PrincipalEntityWithSingleDependentId { get; set; }
public PrincipalEntity PrincipalEntityWithMultipleDependents { get; set; } = null!;
public Guid PrincipalEntityWithMultipleDependentsId { get; set; }
}
< /code>
И это моя текущая конфигурация: < /p>
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder
.Entity()
.HasOne(x => x.Dependent)
.WithOne(x => x.PrincipalEntityWithSingleDependent)
.HasForeignKey(x => x.PrincipalEntityWithSingleDependentId)
.OnDelete(DeleteBehavior.Restrict);
modelBuilder
.Entity()
.HasMany(x => x.Dependents)
.WithOne(x => x.PrincipalEntityWithMultipleDependents)
.HasForeignKey(x => x.PrincipalEntityWithMultipleDependentsId);
}
< /code>
Я старался уже сделать одно отношения, нулевые, но это не помогает. Все еще есть исключение во время сохраняющейся новой принципиальности. < /P>
Я выполняю его следующим образом: < /p>
internal class Program
{
private static async Task Main(string[] args)
{
Console.WriteLine("Hello, World!");
using (var context = new TestDataContext())
{
var dependent1 = new DependentEntity(Guid.NewGuid(), "John Doe");
var dependent2 = new DependentEntity(Guid.NewGuid(), "Jane Doe");
var dependent3 = new DependentEntity(Guid.NewGuid(), "Johnny Doe");
var principal = new PrincipalEntity(Guid.NewGuid(), "p1Number", "p1Name", dependent1, [dependent2, dependent3]);
await context.AddAsync(principal);
await context.SaveChangesAsync();
}
Console.Read();
}
}
< /code>
Затем возникает следующее исключение во время savhangesasync: < /p>
sqlexception "fk_depatenceTity_princality_princality Конфликт произошел в базе данных Test123, «dbo.principalentity», столбец «ID».
Инструкция была закончена.>
Подробнее здесь: https://stackoverflow.com/questions/797 ... -dependent
EF Core: Один принципал с двумя разными отношениями с одним и тем же зависимым? [закрыто] ⇐ C#
Место общения программистов C#
1759410689
Anonymous
У меня есть модель класса с классовой принципиальностью, которая служит главной и содержит связанную с 1: 1, а также 1: N-обращение как к зависимости. Как настроить эти отношения, чтобы вставить, обновлять и удалять работы без ошибок? < /P>
Это классы модели данных: < /p>
public class PrincipalEntity
{
public PrincipalEntity() { }
public PrincipalEntity(Guid id, string number, string name, DependentEntity dependent, List dependents)
{
Id = id;
Number = number;
Name = name;
Dependent = dependent;
Dependents = dependents;
}
public Guid Id { get; set; }
public string Number { get; set; } = null!;
public string Name { get; set; } = null!;
public DependentEntity Dependent { get; set; } = null!;
public List Dependents { get; set; }
}
public class DependentEntity
{
public DependentEntity() { }
public DependentEntity(Guid id, string name)
{
Id = id;
Name = name;
}
public Guid Id { get; set; }
public string Name { get; set; } = null!;
public PrincipalEntity PrincipalEntityWithSingleDependent { get; set; } = null!;
public Guid PrincipalEntityWithSingleDependentId { get; set; }
public PrincipalEntity PrincipalEntityWithMultipleDependents { get; set; } = null!;
public Guid PrincipalEntityWithMultipleDependentsId { get; set; }
}
< /code>
И это моя текущая конфигурация: < /p>
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder
.Entity()
.HasOne(x => x.Dependent)
.WithOne(x => x.PrincipalEntityWithSingleDependent)
.HasForeignKey(x => x.PrincipalEntityWithSingleDependentId)
.OnDelete(DeleteBehavior.Restrict);
modelBuilder
.Entity()
.HasMany(x => x.Dependents)
.WithOne(x => x.PrincipalEntityWithMultipleDependents)
.HasForeignKey(x => x.PrincipalEntityWithMultipleDependentsId);
}
< /code>
Я старался уже сделать одно отношения, нулевые, но это не помогает. Все еще есть исключение во время сохраняющейся новой принципиальности. < /P>
Я выполняю его следующим образом: < /p>
internal class Program
{
private static async Task Main(string[] args)
{
Console.WriteLine("Hello, World!");
using (var context = new TestDataContext())
{
var dependent1 = new DependentEntity(Guid.NewGuid(), "John Doe");
var dependent2 = new DependentEntity(Guid.NewGuid(), "Jane Doe");
var dependent3 = new DependentEntity(Guid.NewGuid(), "Johnny Doe");
var principal = new PrincipalEntity(Guid.NewGuid(), "p1Number", "p1Name", dependent1, [dependent2, dependent3]);
await context.AddAsync(principal);
await context.SaveChangesAsync();
}
Console.Read();
}
}
< /code>
Затем возникает следующее исключение во время savhangesasync: < /p>
sqlexception "fk_depatenceTity_princality_princality Конфликт произошел в базе данных Test123, «dbo.principalentity», столбец «ID».
Инструкция была закончена.>
Подробнее здесь: [url]https://stackoverflow.com/questions/79780867/ef-core-one-principal-with-two-different-relationships-to-the-same-dependent[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия