【发布时间】:2017-05-22 19:29:43
【问题描述】:
我是 C# 数据库的新手,我有一个 MVC 项目,我尝试在用户进行搜索后从数据库中获取、操作数据并将数据提供给视图。我能够从 db 获得结果,但不能用它做任何事情。 IQueryable 正在返回一个“结果视图”列表,其中包含来自 db 的所有行值,问题是我不知道如何访问该数据,因为“结果视图”是在运行时创建的,我不能使用 SearchResult.ResultsView [ 0].City 或运行时之前的某些内容会导致其内容为空。
请告诉我如何正确获取和操作数据库中的数据,IQueryable 在运行时返回一个列表,但接下来 ???如果您能稍微解释一下或提供一些文档以供阅读,我将非常感激。谢谢!
我有一堂课:
namespace Test.Models
{
[Table("LInfo")]
public class LInfo
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int LId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string StreetAddress { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Zip { get; set; }
public int DistrictNo { get; set; }
public virtual Image Image { get; set; }
public virtual ApplicationUser ProcessedBy { get; set; }
public int Pass { get; set; } //pass 0,1,2,3
}
}
映射到哪个Image id:
namespace Test.Models
{
[Table("Img")]
public class Img
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ImgId { get; set; }
public byte[] FileContents { get; set; }
public string FileName { get; set; }
public int FileSize { get; set; }
public bool Anonymous { get; set; }
public bool Unreadable { get; set; }
public bool MultipleFiles { get; set; }
public DateTime? Pulled { get; set; }
public virtual ApplicationUser UploadedBy { get; set; }
public virtual ICollection<LetterInfo> Letters { get; set; }
}
}
还有这个控制器:
namespace Test.Controllers
{
public class SearchController : Controller
{
// GET: Search
public ActionResult Index()
{
return View(new SModel());
}
[HttpPost]
public ActionResult Index(SModel model)
{
ApplicationDbContext db = new ApplicationDbContext();
int districtNo = Convert.ToInt32(model.DistrictNo);
IQueryable SResult = db.LetterInfos.Where(l => l.DistrictNo == districtNo && l.State == model.State)
.Select(s => s);
return View();
}
}
}
来自 Visual Studio 的示例:
【问题讨论】:
-
不要忘记处理打开的上下文,并通过调用.ToList()来执行查询,而不是直接枚举IQueryable。
标签: c# asp.net sql-server asp.net-mvc entity-framework