gpt4 book ai didi

c# - Entity Framework DbSet 抛出 NullReferenceException

转载 作者:行者123 更新时间:2023-11-29 22:03:06 25 4
gpt4 key购买 nike

我尝试使用 Entity Framework 将一些值发布到我的 mysql 数据库中。我能够成功连接到我的数据库。但是,在尝试添加一些值后,出现 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; }
}

这是我的 Entity Framework 的配置:

<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>

最后,这是我的数据库中的表描述:

CREATE TABLE `test` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`Name` varchar(45) NOT NULL,
PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

所以,如果我尝试连接到我的数据库,一切都很好。当我尝试将实体添加到 DbSet 中后,我会遇到异常。

最佳答案

如果您不在 DbContext 构造函数中尝试此代码,其行为方式相同吗?

public class MysqlContext: DbContext
{
public DbSet<Test> Test { get; set; }

public MysqlContext(): base("MysqlDefaultConnection")
{

}
}

[Table("test")]
public class Test
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
}

public void Main()
{
var myContext = new MysqlContext();
var t = new Test { Name = "test", Id = 0 };
myContext.Set<Test>.Add(t);
myContext.SaveChanges();
}

关于c# - Entity Framework DbSet 抛出 NullReferenceException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32422536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com