- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 EF 4.1 Code First,但我无法按照我认为应该能够的方式初始化我的数据。在下面的代码中,您将看到我有一个以 Client 开头的模型,它包含一系列相关的对象。我加载每个对象类型并将其设置为它的父对象。在我的数据加载到我的对象中后,我尝试将顶级对象 Client 保存到数据库中。当我这样做时,我得到一个 System.NullReferenceException。
EF不会做深度加载吗?
我是否需要先将每个对象集保存到数据库中,然后将它们相互关联,然后再将它们保存到数据库中?如果我必须这样做,当它应该能够在一个查询中执行时,加载我的数据似乎会有很多连接。
任何建议或答案将不胜感激。
下面是我的代码,下面是我的异常(exception):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Entity;
namespace MyNameSpace
{
class Program
{
static void Main(string[] args)
{
Database.SetInitializer(new TimeServiceContextInitializer());
TimeServiceContext db = new TimeServiceContext();
var clients = db.Clients.ToList();
foreach (var client in clients)
{
Console.WriteLine("Client: {0}\r\nNumber of Sites: {1}\r\n", client.Name, client.Sites.Count);
}
}
}
// Initialize Database
public class TimeServiceContextInitializer : DropCreateDatabaseIfModelChanges<TimeServiceContext>
{
protected override void Seed(TimeServiceContext db)
{
List<Client> clients = new List<Client>();
Client client = new Client();
client.Name = "Achme Big Company";
Site site = new Site();
site.Name = "www.SampleSite.com";
Project project = new Project();
project.Name = "Schololarship Application Phase 1";
project.Description = "Create an application that allows student to apply for scholarship in the www.SampleSite.com web site.";
project.DateCreated = DateTime.Now.AddDays(-15);
project.StartDate = DateTime.Now.AddDays(-5);
project.DeadlineDate = DateTime.Now.AddDays(45);
project.Status = Status.In_Progress;
project.FixedFee = 40500.00m;
project.SpecialNotes = "This project has a firm deadline due to the fact that marketing information is already set to go out to advertize applying for scholarships online through the web site";
TimeEntry timeEntry = new TimeEntry();
timeEntry.EmployeeName = "Brian Johns";
timeEntry.TasksPerformed = "Started working on sceen mockups for the first page of the scholoarship application";
timeEntry.TimeRecorded = DateTime.Now.AddDays(-4).AddHours(10);
project.TimeEntries.Add(timeEntry); /// <---- --------------------------- GET System.NullReferenceException Exception Here -----------
timeEntry = new TimeEntry();
timeEntry.EmployeeName = "Brian Johns";
timeEntry.TasksPerformed = "Completed first section of form fields and started on the second section for the first page of the scholoarship application";
timeEntry.TimeRecorded = DateTime.Now.AddDays(-4).AddHours(11.5);
project.TimeEntries.Add(timeEntry);
timeEntry = new TimeEntry();
timeEntry.EmployeeName = "Brian Johns";
timeEntry.TasksPerformed = "Decided we needed to regroup fields so started modifying form layout to work better on the first page of the scholoarship application";
timeEntry.TimeRecorded = DateTime.Now.AddDays(-4).AddHours(13.25);
project.TimeEntries.Add(timeEntry);
timeEntry = new TimeEntry();
timeEntry.EmployeeName = "Brian Johns";
timeEntry.TasksPerformed = "Completed first form of the scholarship application. Started discussing the next form for step 2 of the scholarship application process";
timeEntry.TimeRecorded = DateTime.Now.AddDays(-4).AddHours(14);
project.TimeEntries.Add(timeEntry);
site.Projects.Add(project);
client.Sites.Add(site);
db.Clients.Add(client);
db.SaveChanges();
base.Seed(db);
}
}
// Context
public class TimeServiceContext : DbContext
{
public DbSet<Client> Clients { get; set; }
public DbSet<Site> Sites { get; set; }
public DbSet<Project> Projects { get; set; }
public DbSet<TimeEntry> TimeEntries { get; set; }
}
// Model Starts Here
public class Client
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<Site> Sites { get; set; }
public DateTime DateCreated { get; set; }
}
public class Site
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<Project> Projects { get; set; }
public int ClientId { get; set; }
public DateTime DateCreated { get; set; }
}
public enum Status { Not_Started, In_Progress, Completed };
public class Project
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public DateTime StartDate { get; set; }
public DateTime DeadlineDate { get; set; }
public DateTime CompletionDate { get; set; }
public decimal FixedFee { get; set; }
public decimal HourlyRate { get; set; }
public Status Status { get; set; }
public string SpecialNotes { get; set; }
public ICollection<TimeEntry> TimeEntries { get; set; }
public int SiteId { get; set; }
public DateTime DateCreated { get; set; }
}
public class TimeEntry
{
public int id { get; set; }
public string EmployeeName { get; set; }
public string TasksPerformed { get; set; }
public DateTime TimeRecorded { get; set; }
public int InvoiceNumber { get; set; }
public int ProjectId { get; set; }
}
}
1.InitializeDatabase(TContext context)
at System.Data.Entity.Database.<>c__DisplayClass2
1.b_0(数据库上下文 c)
最佳答案
将构造函数添加到您的项目类
Project(){
TimeEntries = new HashSet<TimeEntry>();
}
Project project = new Project(){
Name = "Schololarship Application Phase 1",
Description = "Create an application that allows student to apply for scholarship in the www.SampleSite.com web site.",
DateCreated = DateTime.Now.AddDays(-15),
StartDate = DateTime.Now.AddDays(-5),
DeadlineDate = DateTime.Now.AddDays(45),
Status = Status.In_Progress,
FixedFee = 40500.00m,
SpecialNotes = "This project has a firm deadline due to the fact that marketing information is already set to go out to advertize applying for scholarships online through the web site"
};
关于entity-framework-4.1 - EF 4.1 Code First 数据库初始化 System.NullReferenceException 加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6620141/
我的问题是如何在 python 中创建一个简单的数据库。我的例子是: User = { 'Name' : {'Firstname', 'Lastname'}, 'Address' : {'Street
我需要创建一个与远程数据库链接的应用程序! mysql 是最好的解决方案吗? Sqlite 是唯一的本地解决方案吗? 我使用下面的方法,我想知道它是否是最好的方法! NSString *evento
给定两台 MySQL 服务器,一台本地,一台远程。两者都有一个包含表 bohica 的数据库 foobar。本地服务器定义了用户 'myadmin'@'%' 和 'myadmin'@'localhos
我有以下灵活的搜索查询 Select {vt:code},{vt:productcode},{vw:code},{vw:productcode} from {abcd AS vt JOIN wxyz
好吧,我的电脑开始运行有点缓慢,所以我重置了 Windows,保留了我的文件。因为我的大脑还没有打开,所以我忘记事先备份我的 MySQL 数据库。我仍然拥有所有原始文件,因此我实际上仍然拥有数据库,但
如何将我的 Access 数据库 (.accdb) 转换为 SQLite 数据库 (.sqlite)? 请,任何帮助将不胜感激。 最佳答案 1)如果要转换 db 的结构,则应使用任何 DB 建模工具:
系统检查发现了一些问题: 警告:?:(mysql.W002)未为数据库连接“默认”设置 MySQL 严格模式 提示:MySQL 的严格模式通过将警告升级为错误来修复 MySQL 中的许多数据完整性问题
系统检查发现了一些问题: 警告:?:(mysql.W002)未为数据库连接“默认”设置 MySQL 严格模式 提示:MySQL 的严格模式通过将警告升级为错误来修复 MySQL 中的许多数据完整性问题
我想在相同的 phonegap 应用程序中使用 android 数据库。 更多说明: 我创建了 phonegap 应用程序,但 phonegap 应用程序不支持服务,所以我们已经在 java 中为 a
Time Tracker function clock() { var mytime = new Date(); var seconds
我需要在现有项目上实现一些事件的显示。我无法更改数据库结构。 在我的 Controller 中,我(从 ajax 请求)传递了一个时间戳,并且我需要显示之前的 8 个事件。因此,如果时间戳是(转换后)
我有一个可以收集和显示各种测量值的产品(不会详细介绍)。正如人们所期望的那样,显示部分是一个数据库+建立在其之上的网站(使用 Symfony)。 但是,我们可能还会创建一个 API 来向第三方公开数据
我们将 SQL Server 从 Azure VM 迁移到 Azure SQL 数据库。 Azure VM 为 DS2_V2、2 核、7GB RAM、最大 6400 IOPS Azure SQL 数据
我正在开发一个使用 MongoDB 数据库的程序,但我想问在通过 Java 执行 SQL 时是否可以使用内部数据库进行测试,例如 H2? 最佳答案 你可以尝试使用Testcontainers Test
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 已关闭 9 年前。 此问题似乎与 a specific programming problem, a sof
我正在尝试使用 MSI 身份验证(无需用户名和密码)从 Azure 机器学习服务连接 Azure SQL 数据库。 我正在尝试在 Azure 机器学习服务上建立机器学习模型,目的是我需要数据,这就是我
我在我的 MySQL 数据库中使用这个查询来查找 my_column 不为空的所有行: SELECT * FROM my_table WHERE my_column != ""; 不幸的是,许多行在
我有那个基地:http://sqlfiddle.com/#!2/e5a24/2这是 WordPress 默认模式的简写。我已经删除了该示例不需要的字段。 如您所见,我的结果是“类别 1”的两倍。我喜欢
我有一张这样的 table : mysql> select * from users; +--------+----------+------------+-----------+ | userid
我有表: CREATE TABLE IF NOT EXISTS `category` ( `id` int(11) NOT NULL, `name` varchar(255) NOT NULL
我是一名优秀的程序员,十分优秀!