与代码中的位置有关的可变问题

本文关键字:问题 位置 代码 | 更新日期: 2023-09-27 18:21:06

我真的不确定这篇文章的合适标题是什么,但我会在描述中解释我之后的内容,并尽我所能使用这个标题。今天也是星期一早上,请耐心等待

目前我正在使用EntityFramework,试图将数据插入本地数据库。然而,当我试图告诉它该去哪里时(我显然做错了),它会抱怨变量/命名空间,坦率地说,我不确定这是否只是超出了我的知识范围,或者是因为周一的疲劳。

当前代码:

var db = new Bootstrap.Database1Entities(); 
db.CalendarDatas.Add(new db.CalendarData
                {
                    Day = 1-1-2015,
                    Text = "Test"

                });

               db.SaveChanges();

当前错误代码:CS0246:找不到类型或命名空间名称"db"(是否缺少using指令或程序集引用?)

然而,在这两个命令"块"之间,我还有一个命令块,用于从数据库中选择具有相同名称和命名空间的所有内容,如果这是相关的,这是有效的。请记住,到目前为止,我还是个新手

var dag = new DateTime(year, month, i);
                var calenderInfos = (from c in db.CalendarDatas
                                     where c.Day == dag
                                     select c).ToList();

这是从数据库中选择所有内容的命令块,作为C#的新手,我想,既然CalendarDatas在这里工作,它也应该在insert命令块上工作?也许是错的,但我至少可以这么说。

与代码中的位置有关的可变问题

试试这个:

db.CalendarDatas.Add(new CalendarData
            {
                Day = new DateTime( 2015, 1, 1 ),
                Text = "Test"

            });

新数据库。日历数据…'将导致编译器搜索名为"db"的命名空间

db.CalendarData是一个无法创建的属性。您需要创建一个类的新实例,而不是属性。

你能在下面的行中用正确的名称空间替换db吗:

new db.CalendarData

我建议您更改代码以使用using语句。我也会简化代码,直到您找到导致错误的原因。

using(var db = new Bootstrap.Database1Entities())
{
    var item = new CalendarData
                   {
                       Day = new DateTime( 2015, 1, 1 ),
                       Text = "Test"
                   };
    db.CalendarDatas.Add(item);
    db.SaveChanges();
}

问题已解决
我真的很感激每个人的帮助,但Jakob Olsen提出的解决方案似乎已经成功了。最初发布在评论中。

var db = new Bootstrap.Database1Entities();
var newItem = db.CalendarDatas.Create();
newItem.Day = "1-1-2015";
newItem.Text = "Test";
db.CalendarDatas.Add(newItem);
db.SaveChanges();