Я пытаюсь опубликовать некоторые значения в моем mysql database with the entity framework
. Я могу успешно подключиться к моей базе данных. Но после того, как я попытаюсь добавить некоторые значения, у меня есть ошибка NullReferenceException
.Entity Framework DbSet throws NullReferenceException
Вот мой код:
public class MysqlContext: DbContext
{
public DbSet<Test> Test { get; set; }
public MysqlContext(): base("MysqlDefaultConnection")
{
Database.Connection.Open();
var t = new Test { Name = "test", Id = 0 };
Test.Add(t);
SaveChanges();
}
}
[Table("test")]
public class Test
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
}
И это моя конфигурация моей структуры объекта:
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<connectionStrings>
<add name="MysqlDefaultConnection" connectionString="server=localhost;user id=dev;password=****;database=****" providerName="MySql.Data.MySqlClient" />
<entityFramework>
<defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" />
<providers>
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
</providers>
Наконец, это мой стол Descriptio n из моей базы:
CREATE TABLE `test` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`Name` varchar(45) NOT NULL,
PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
Итак, если я попытаюсь подключиться к своей базе данных, все в порядке. После того, как я попытаюсь добавить свою сущность в DbSet, я получу исключение.
Какая линия выбрасывается конкретно и что такое трассировка стека? – CodeCaster
У меня есть ошибка здесь: «Test.Add (t);». И вот мой стек: http://pastebin.com/B2yd64Ff – user3149497
Вы не даете контексту никакой возможности инициировать свои собственные свойства перед запуском вашего кода. Это всего лишь строительство. Это неправильное место для размещения такого кода. Он даже не принадлежит нигде внутри класса контекста. –