我想創建一個使用實體框架來使用Web.API返回轉換json對象的一對多關係。實體框架在Web.API中的代碼優先一對多關係
我正在創建一個用戶有很多功能電子郵件的場景。
但是,用戶實體中的json文件包含電子郵件列表,該電子郵件列表始終爲空。
用戶實體
[DataContract]
public class UsuarioEntity : BaseEntity
{
[DataMember]
public string UserName { get; set; }
[DataMember]
public string Password { get; set; }
[DataMember]
public bool Ativado { get; set; }
[DataMember]
public ICollection<EmailEntity> Emails { get; private set; }
}
電子郵件實體
[DataContract]
public class EmailEntity : BaseEntity
{
[DataMember]
public string Email { get; set; }
[DataMember]
public bool Ativo { get; set; }
[DataMember]
public bool Principal { get; set; }
[DataMember]
public DateTime DataCadastro { get; set; }
[DataMember]
public UsuarioEntity Usuario { get; set; }
}
流利的API
UsuarioConfiguration
ToTable("tbl_usuarios");
HasKey(a => new {a.Id, a.UserName});
Property(a => a.Id)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity)
.HasColumnName("cd_id_usuario");
Property(a => a.UserName)
.HasMaxLength(32)
.HasColumnName("nm_usuario");
Property(a => a.Password)
.IsRequired()
.HasMaxLength(32)
.HasColumnName("tx_senha");
Property(a => a.DataCadastro)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Computed)
.HasColumnType("datetime")
.IsRequired()
.HasColumnName("dt_cadastro");
HasMany(o => o.Emails)
.WithRequired();
EmailConfiguration
ToTable("tbl_email_usuario");
HasKey(a => new { a.Id, a.Email });
Property(a => a.Id)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity)
.HasColumnName("cd_id_email");
Property(a => a.Email)
.HasMaxLength(150)
.HasColumnName("nm_email");
Property(a => a.DataCadastro)
.HasColumnType("datetime")
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Computed)
.IsRequired()
.HasColumnName("dt_cadastro")
我試圖用EF使用Web API是這樣的:
public IQueryable<UsuarioEntity> Get()
{
PlainContext context = new PlainContext();
return context.Usuarios;
}
除了回報是沒有預料
[{"Id":1,"Ativado":true,"DataCadastro":"\/Date(1357307720730-0200)\/","Emails":[],"Password":"senha456","UserName":"recapix"}]
我擁有 和註冊電子郵件只有他們不會出現在JSON。
他們是從數據庫中獲取取出並在響應XML/JSON沒有出庭或在所有 – frictionlesspulley
我試圖讓數據庫和序列化JSON文件沒有得到拾取的表格數據庫,把電子郵件列表始終是未來空的,我把項目數據庫.. –
你直接或通過EF把他們? –