2012-04-23 18 views
6

Bazı veri modelleri var:Varlık Çerçeve 5 DbUpdateException: için null değeri olmayan null üye

[DataContract(Name = "artist")] 
public class artist : IEqualityComparer<artist> 
{ 
    [Key] 
    [XmlIgnore] 
    [DataMember] 
    public int ID { get; set; } 

    [DataMember] 
    [XmlElement(ElementName = "name")] 
    public string name { get; set; } 

    [DataMember] 
    [XmlElement(ElementName = "mbid", IsNullable = true)] 
    public string mbid { get; set; } 

    [DataMember] 
    [XmlElement(ElementName = "url")] 
    public string url { get; set; } 

    [XmlElement(ElementName = "image", IsNullable = true)] 
    public List<string> image { get; set; } 

    [DataMember(IsRequired=false)] 
    [XmlElement(ElementName = "stats", IsNullable = true)] 
    public stats stats { get; set; } 

    public double? match { get; set; } 
    public List<tag> tags { get; set; } 
    [XmlElement(ElementName = "similar")] 
    [DataMember(Name = "similar")] 
    public List<artist> similar { get; set; } 

    [DataMember] 
    [XmlElement(ElementName = "bio", IsNullable = true)] 
    public wiki bio { get; set; } 


    public bool Equals(artist x, artist y) 
    { 
     return x.name == y.name; 
    } 

    public int GetHashCode(artist obj) 
    { 
     return obj.name.GetHashCode(); 
    } 
} 

ve karmaşık bir türü:

[DataContract] 
[ComplexType] 
[XmlRoot(ElementName = "streamable", IsNullable = true)] 
public class stats 
{ 
    [DataMember(IsRequired = false)] 
    public int listeners { get; set; } 

    [DataMember(IsRequired = false)] 
    public int playcount { get; set; } 
} 

ve veritabanı dahil:

[Table("CachedArtistInfo")] 
public class MusicArtists 
{ 
    [Key] 
    public string artistName { get; set; } 
    public artist artistInfo { get; set; } 

    private DateTime _added = default(DateTime); 
    [DataMember(IsRequired = true)] 
    [Timestamp] 
    public DateTime added 
    { 
     get 
     { 
      return (_added == default(DateTime)) ? DateTime.Now : _added; 
     } 
     set { _added = value; } 
    } 
} 

Son adım:

 foreach (artist a in id) 
     { 
      df.CachedArtists.Add(new MusicArtists() { artistName = a.name, artistInfo = a }); 
      df.SaveChanges(); 
     } 

HATA: ExceptionType olmayan null üyesi için "System.Data.Entity.Infrastructure.DbUpdateException" "null değeri. ..? Üye: 'istatistik'" değişken tam o doldurulur ve nesne istatistikleri edilir neyin yanlış

enter image description here enter image description here

+0

Oh, programlamadan çok uzakım EF5 hakkında bildirim gönderdiğiniz için teşekkür ederiz :) +1 –

+2

İstatistiğin içeriğini eklediniz mi? – Mac

cevap

İlgili konular