HighCharts与ASP.NET MVC使用·Ajax获取Json数据
http://www.knowsky.com/887141.html
EF中include的用法
https://www.cnblogs.com/nlh774/p/3588286.html
实体框架将使用这些模型来创建数据库表。对于每个模型,该Id属性将成为数据库表的主键列。在Book类中,AuthorId在Author表中定义一个外键。(为了简单起见,我假设每本书都有一个作者。)书类还包含相关的导航属性Author。可以使用导航属性访问Author代码中的相关内容。
public IQueryable<Book> GetBooks()
{
return db.Books
// new code:
.Include(b => b.Author);
}
[
{
"BookId": 1,
"Title": "Pride and Prejudice",
"Year": 1813,
"Price": 9.99,
"Genre": "Comedy of manners",
"AuthorId": 1,
"Author": {
"AuthorId": 1,
"Name": "Jane Austen"
}
},
...
SELECT
[Extent1].[BookId] AS [BookId],
[Extent1].[Title] AS [Title],
[Extent1].[Year] AS [Year],
[Extent1].[Price] AS [Price],
[Extent1].[Genre] AS [Genre],
[Extent1].[AuthorId] AS [AuthorId],
[Extent2].[AuthorId] AS [AuthorId1],
[Extent2].[Name] AS [Name]
FROM [dbo].[Books] AS [Extent1]
INNER JOIN [dbo].[Authors] AS [Extent2] ON [Extent1].[AuthorId] = [Extent2].[AuthorId]
数据库迁移
一些插入数据的语句使用AddOrUpdate方法来执行“upsert”操作。因为Seed每次执行该update-database命令时都会运行该方法,通常在每次迁移之后,您不能只插入数据,因为在第一次迁移创建数据库之后,您尝试添加的行将已经存在。“upsert”操作可防止在尝试插入已存在的行时发生的错误,但会覆盖该行对测试应用程序时可能做出的任何数据更改。对于某些表中的测试数据,您可能不希望发生这种情况:在某些情况下,当您在测试期间更改数据时,希望在数据库更新之后保留更改。在这种情况下,您需要执行条件插入操作:只在行不存在时才插入行。Seed方法使用两种方法。
传递给AddOrUpdate方法的第一个参数指定用于检查行是否已经存在的属性。对于您提供的测试学生数据,该LastName属性可用于此目的,因为列表中的每个姓氏都是唯一的:
context.Students.AddOrUpdate(p => p.LastName, s)
ViewModel的使用
http://www.360doc.com/content/14/0527/16/1355383_381470509.shtml
获取上一页面的链接
ViewBag.UrlReferrer=Request.UrlReferrer.PathAndQuery;
可以用在保存成功界面,用于返回保存成功页面的上一个页面(即点击保存的页面)。
C# Json数据封装与解析
封装Json数据
引入命名空间:using Newtonsoft.Json;
string Json= Newtonsoft.Json.JsonConvert.SerializeObject(unitEmployeeJsonList);
unitEmployeeJsonList是一个List对象集合,List中还嵌有另外一个List集合。
解析Json数据
var jsonArrary = JsonConvert.DeserializeObject(ViewBag.Json);
在这里可以吧解析后的数据看做一个数组,使用 foreach循环,取出所需信息即可。
TryUpdateModel
TryUpdateModel用来部分更新模型,TryUpdateModel(_user, new string[] { "DisplayName", "Email" }) 表示只想从客户提交的数据中更新DisplayName和Email。