我刚开始研究asp mvc核心。根据MS poco数据库保持不变。
现在,下面的所有代码都在asp mvc 4上完美运行,并且所有内容都保存在数据库中;由sqlserverexplorer在visual studio 2015 update 3上验证。
我可以检索数据,但是一段时间后或者在我重新启动应用程序并尝试检索属性后,它会显示为null,尽管我可以查看数据库中的数据。
尝试过的事情
***这一行使得它保持关系直到应用程序重新启动,因此它只保存了应用程序启动后保存的关系,并在重新启动后丢失了。
目前的行为是它保存数据但未被检索。
加分 我通过下面定义的函数保存数据,该函数属于一个类,它按照启动类的ConfigureServices方法中的asp.net mvc核心指南进行注入。
我的poco课程是
public class modelsall
{
public virtual int modelsallId { get; set; }
[Required]
public virtual string username { get; set; }
[Required]
[DisplayName("Email")]
[DataType(DataType.EmailAddress)]
public virtual string email { get; set; }
[DataType(DataType.Text)]
public virtual string title { get; set; }
[DataType(DataType.Text)]
public virtual string extra { get; set; }
[Required]
[DataType(DataType.DateTime)]
public virtual DateTime startdate { get; set; }
public virtual string imageblob { get; set; }
public virtual List<comments> comments { get; set; }
public virtual List<storyfacequotes> faceq { get; set; }
//Tried adding this in desperation
//[ForeignKey("storypages")]
//public virtual int storyId { get; set; }
public virtual List<story> pages { get; set; }
//Tried adding this after a blogpost said it might help
public virtual ApplicationUser user { get; set; }
public virtual whatisit typ { get; set; }
}
创建和保存的方法
public async Task<bool> AddMainStory(string email, modelsall modelsall)
{
ApplicationUser user = await GetUser(email);
if (user == null)
{
return false;
}
modelsall.email = user.Email;
modelsall.user = user;
_context.models.Add(modelsall);
await _context.SaveChangesAsync();
if (user.mode == null)
{
user.mode = new List<modelsall>();
}
user.mode.Add(modelsall);
await _context.SaveChangesAsync();
return true;
}
ApplicationUser中定义的属性
public class ApplicationUser : IdentityUser
{
public virtual List<modelsall> mode { get; set; }
}
PS:我找不到asp.net mvc核心的标签,但根据MS,mvc5被认为是mvc核心。
答案 0 :(得分:0)
经过大量研究而没有第一次正确查看文档,
你需要这个来建立关系
builder.Entity().HasMany(u => u.storymode).WithOne(c => c.user);
数据库上下文OnModelCreating方法中的****。
但如果应用程序重新启动则整个过程会重置,因此不是理想的解决方案。
现在你可以每次搜索,对小应用程序没有多大影响,或者使用asp 5和ef6。
Here is a list of features not included in ef core as of now.