【发布时间】:2019-06-13 05:38:58
【问题描述】:
我正在我的模型中编写用于将值保存到数据库的方法,并且遇到了 bool 类型 “无法将类型 bool 隐式转换为字符串” 的问题。 将字符串和布尔值保存到我的数据库表中的正确方法应该如何看待?
表格模型:
public class Table
{
public int Id{ get; set; }
public bool Yes { get; set; }
public string Name { get; set; }
}
保存方法:
public void SaveToDb()
{
var db2 = new DatabaseEntities();
db2.Table.Add(new Table(){ Name=Name, Yes=Yes} //get error here with "Yes"
db2.SaveChanges();
}
SQL 表:
CREATE TABLE [dbo].[Table] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[Name] NVARCHAR (50) NULL
[Yes] BIT NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
【问题讨论】:
-
Table.Yes是bool吗?该消息说您正在尝试将bool分配给string,所以我猜Table.Yes这里是string而不是bool -
应该是
Yes = true -
我没有 c# 表类,我从我的 FormView 获取值,传递给我的控制器并使用此模型方法保存到数据库
-
当您使用
new Table(){ Name="name", Yes=true}(即使用显式值)时会发生什么?另外:什么时候出现错误,编译时还是运行时? -
您正在使用
new Table(),因此是代码中的一个类(可能是自动生成的)。将光标设置在该“表”上,然后按 F12 转到定义。那里的 Yes 属性是什么类型的?
标签: c# .net asp.net-mvc entity-framework asp.net-core