2012-04-23 9 views
6

にNULL値Iは、いくつかのデータモデルを有する:Entity Frameworkの5 DbUpdateException:非NULL可能部材

[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(); 
    } 
} 

及び複合型:

[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; } 
} 

とデータベース封入:

[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; } 
    } 
} 

最終ステップ:

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

エラー: ExceptionType "System.Data.Entity.Infrastructure.DbUpdateException" "nullを許可しないメンバのNULL値。 。。?メンバー:「統計」」 変数が完全に充填され、それに統計情報をオブジェクトで何が間違って

enter image description here enter image description here

+0

私はあまりにも遠すぎて、EF5について通知してくれてありがとうございます。+1 –

+2

コンテキストにstatsオブジェクトを追加しましたか? – Mac

答えて

関連する問題