2016-10-10 5 views
2

Ich habe eine Nullable int als fk in meiner Tabelle, wie unten zu sehen ist. Ich habe den FK int gemacht. Aber wenn ich versuche, mit einem Nullwert zu speichern, bekomme ich einen Verweisbedingungsbedingungsfehler?Eine referenzielle Integritätseinschränkungsverletzung ist aufgetreten. Nullable FK

[Table("Tests")] 
    public class Tests : BaseEntity 
    { 
    [MaxLength(255)] 
    public virtual string TestName { get; set; } 

    public virtual int? ProjectId { get; set; } 

    [ForeignKey("ProjectId")] 
    public virtual Project Project { get; set; } 
    }  

[Table("Project")] 
    public class Project : BaseEntity 
    { 
    [Required, MaxLength(100)] 
    public virtual string Name { get; set; } 

    [Required, MaxLength(200)] 
    public virtual string Type { get; set; } 
    } 

    public class BaseEntity 
    { 
    [Key, Required] 
    public virtual int Id { get; set; } 

    [Required] 
    public virtual DateTime CreatedDate { get; set; } 
    } 

    _testsRepo.InsertOrUpdateAndGetId(test); 

Ausnahme:

System.InvalidOperationException: A referentielle Integritätsbedingung Verletzung aufgetreten: Der Eigenschaftswert (e) von 'Project.Id' an einem Ende eine Beziehung nicht Entsprechen Sie den Eigenschaftswert (en) von 'Tests.ProjectId' am anderen Ende.

+0

können Sie zeigen, vollständige Ausnahme benötigt? – Sampath

+0

können Sie auch den Code des 'Project' Modells zeigen? – Sampath

+0

Ich verstehe, dass das fk ein int ist? sollte alles sein, was erforderlich ist – MicroMan

Antwort

1

So war die Ausgabe im AutoMapper Code, den ich die folgende Zeile

.ForMember(dest => dest.ProductId, opts => opts.MapFrom(src => src.ProductId)) 
.ForMember(dest => dest.Product, opts => opts.Ignore()); 
Verwandte Themen