У меня есть 2 объекта с отношениями FK между ними.Вся эта логика работала нормально, когда я использовал .net core 2, но сломалась, когда я обновился до 2.1
public class Parent
{
[Key()]
public Guid ParentGUID {get;set;}
public string SomeValue {get;set;}
[ForeignKey("ReferenceTypeGUID")]
public ReferenceType ReferenceTypeObject {get;set;}
}
public class ReferenceType
{
[Key()]
public Guid ReferenceTypeGUID{get;set;}
public string SomeOtherValue {get;set;}
public virtual ICollection<Parent> ParentGU { get; set; }
}
, а затем в моем dbcontext у меня есть
modelBuilder.Entity<ReferenceType>(entity =>
{
entity.HasKey(e => e.ReferenceTypeGUID);
entity.HasMany(c => c.ParentGU)
.WithOne(e => e.ReferenceTypeObject)
.HasForeignKey(f => f.ParentGUID)
.OnDelete(DeleteBehavior.ClientSetNull);
});
Теперь в моемИсходный код, у меня не было строки HasForeignKey, и я получил следующую ошибку:
не может быть нацелен на первичный ключ, потому что он не совместим
при добавлении этой строкиисправил эту проблему, но теперь я получаю
Столкновение с типом операнда: int несовместимо с uniqueidentifier
по какой-то причине, EF предполагает, что тип базы данных должен бытьint вместо uniqueidentifier, даже если объект объявлен как GUID.как я могу решить эту проблему?