私はこのポストの目的のための簡単なモデルを持っています。これは予想されるEntity Framework 7/Coreの動作かバグですか?
2つのエンティティロールと個人。
public class Role : Entity
{
public Guid Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Person> PeopleWithThisRole { get; set; }
}
public class Person : Entity
{
public Guid Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public Guid? RoleId { get; set; }
}
私はEFコンテキストから役割を取得する場合、私はそれらを.Include
ない限り、予想通り、その後、PeopleWithThisRoleコレクションは。(空である。
しかし、私は役割を取得し、私は、以下のように人々を取得する場合
var roles = _context.Roles.ToList();
var people = _context.People.ToList();
その後roles.PeopleWithThisRole
コレクションは完全に.Include
にそれをせずに、人々が移入されます。
これは予想される動作ですか、これをバグとして提起する必要がありますか?
おかげ以下@hvdするために多くのおかげで
UPDATE
は、私はそれらの特性Iを除外した(DTOSにマッピングする代わりに、きれいなエンティティを維持していない[JsonIgnore]属性を使用してすることにしましたおそらく正しい方法でしょうか?)
私は今それを得る。私はSQLをチェックして、あなたは正しいです、それは参加していません。私が必要とする以上のデータを返すWeb APIからJSONとして返すときに問題が発生します。私はDTOにマップするか、返す前にコレクションをクリアすることができますが、これはほとんど制御できないようです:-( –
@MarkChidlowシリアライザからプロパティを除外したい場合があります。 .NETの場合、 '[JsonIgnore]'属性を追加するだけです(プロパティを直列化したい場合は、それでも可能ですが、もっと難しくなります)。 – hvd
ありがとうございます。 –