1

私は Neo4J とこのクライアントに非常に慣れていないため、コツをつかみ始めていますが、奇妙な問題があります。以下のようなエンティティがあります

public class MemberAccount : Entity<MemberAccount>, IValidatable
{
  public string StudioName { get; set; }
  public string EmailAddress { get; set; }
  public string OwnerFirstName { get; set; }
  public string OwnerLastName { get; set; }
  public MemberAccountType AccountType { get; set; }
  public string Password { get; set; }
  public string PostCode { get; set; }

  [JsonProperty("PrimaryPhone")]
     public PhoneNumber PrimaryPhone { get; set; }
}

基本的に、PhoneNumber 値オブジェクトが原因で create ステートメントが以下のエラーで失敗しているように見えます

System.ArgumentNullException : 値を null にすることはできません。パラメーター名: c:\TeamCity\buildAgent\work\f1c4cf3efbf1b05e\Neo4jClient\GraphClient.cs の Neo4jClient.GraphClient.GetLastPathSegment(String uri) の System.Uri..ctor(String uriString) の uriString: Neo4jClient.GraphClient の 686 行目。 c:\TeamCity\buildAgent\work\f1c4cf3efbf1b05e\Neo4jClient\GraphClient.csに (TNode ノード、IEnumerable 1 relationships, IEnumerable1 indexEntries) を作成します: StudioBooker.Persistence.Repository.Studio.Neo4JRepositories.Neo4JMemberAccountRepository.Save(MemberAccount memberAccount) の 334 行目cs: StudioBooker.Persistence.Tests.Neo4JRepositoryTests.Neo4JMemberAccountRepositoryTests.SaveTest() の 29 行目 Neo4JMemberAccountRepositoryTests.cs: 31 行目

newtonsoft によって生成された JSON は次のようになります

{
    "StudioName": "Studio",
    "EmailAddress": "testmail0972307938024723@googlemail.com",
    "OwnerFirstName": "Test",
    "OwnerLastName": "Test",
    "AccountType": 1,
    "Password": "Password",
    "PostCode": "W3 6AE",
    "PrimaryPhone": {
        "AreaCode": "01491",
        "Number": "651321"
    },
    "Id": "00000000-0000-0000-0000-000000000000"
}

上記のスタック トレースが発生する理由を理解するのに苦労しています。これは、クライアントに関する限り単純なプロパティであると考えていたからです。どんな助けでも大歓迎です:)

ありがとう

4

1 に答える 1

2

エラー メッセージは少し役に立ちません。私はそれに取り組まなければなりません。

ただし、通常、そのようなネストされた型は使用できません。Neo4j は、値がプリミティブであるキー値のみを格納します。電話番号を親のプロパティにフラット化するか、別のノードに保存する必要があります。

于 2013-06-04T07:32:45.550 に答える