我有一个名为AdresModels的模型,就是这样:
namespace App_User.Models
{
public class AdresContext: DbContext
{
public AdresContext()
: base("DefaultConnection")
{
}
public DbSet<UserProfile> UserProfiles {get; set;}
public DbSet<AdresModels> AdresModel { get; set; }
public DbSet<RachunekModels> RachunekModel { get; set; }
}
[Table("Adres")]
public class AdresModels
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int AdresID { get; set;}
public virtual int UserId { get; set; }
[ForeignKey("UserId")]
public virtual UserProfile User {get; set;}
public string Miejscowosc { get; set; }
public string Nr_domu { get; set; }
public string Ulica { get; set; }
public string Nr_mieszkania { get; set; }
}
}
比我有看法:
<td>
@Html.DisplayFor(modelItem => item.User.UserName)
</td>
<td>
@Html.DisplayFor(modelItem => item.Miejscowosc)
</td>
<td>
@Html.DisplayFor(modelItem => item.Nr_domu)
</td>
<td>
@Html.DisplayFor(modelItem => item.Ulica)
</td>
<td>
@Html.DisplayFor(modelItem => item.Nr_mieszkania)
</td>
现在我想在UserName ==登录用户的视图中仅显示此特定数据。 我不知道我需要在哪里进行更改以使其正常工作。
我还有一个问题。
我在RachunekModels中有AdresModels和RachunekModel我有来自AdresModels的外键,我想将记录的UserID与Adres相关联,而不是从Rachunek显示已登录用户的数据。
public class RachunekContext : DbContext
{
public RachunekContext()
: base("DefaultConnection")
{
}
public DbSet<UserProfile> UserProfiles {get; set;}
public DbSet<AdresModels> AdresModel { get; set; }
public DbSet<RachunekModels> RachunekModel { get; set; }
}
[Table("Rachunek")]
public class RachunekModels
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int RachunekID { get; set;}
public virtual int AdresID { get; set; }
[ForeignKey("AdresID")]
public virtual AdresModels Adreses { get; set; }
}
我真的不知道如何联系这个。
答案 0 :(得分:0)
我不知道在哪里需要进行更改以使其正常工作。
在负责查询模型的控制器操作中。在这里,您应该对查询应用过滤器,以便仅检索符合此条件的元素:
[Authorize]
public ActionResult Index()
{
string loggedUser = User.Identity.Name;
var model = db.AdresModel.Where(x => x.User.UserName == loggedUser).ToList();
return View(model);
}