有关代码放置的可变问题

时间:2015-11-09 08:21:15

标签: c# asp.net entity-framework

我真的不确定这个标题的适当名称是什么,但我会在说明中尝试解释我之后的内容,并尽量使用标题。它也是星期一早上所以忍受我!

目前我正在使用EntityFramework,尝试将数据插入本地数据库。然而,当我尝试告诉它去哪里(我显然做错了)时,它抱怨变量/名称空间,坦率地说我不确定这是否仅仅在我的知识范围之外或者它是星期一疲惫不堪。

当前代码:

var db = new Bootstrap.Database1Entities(); 

db.CalendarDatas.Add(new db.CalendarData
                {

                    Day = 1-1-2015,
                    Text = "Test"


                });



               db.SaveChanges();

当前错误代码: CS0246:类型或命名空间名称' db'找不到(你错过了使用指令或汇编引用吗?)

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

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

这是从数据库中选择所有内容的命令块,作为C#的新手我会想象,因为CalendarDatas在这里工作,它也应该在insert命令块上工作?可能是错的,但据我所知至少。

3 个答案:

答案 0 :(得分:4)

试试这个:

db.CalendarDatas.Add(new CalendarData
            {

                Day = new DateTime( 2015, 1, 1 ),
                Text = "Test"


            });

'new db.CalendarData ...'将导致编译器搜索名​​为'db'的命名空间

答案 1 :(得分:1)

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();
}

答案 2 :(得分:1)

问题已解决!
我非常感谢每个人的帮助,但雅各布奥尔森带来的解决方案似乎做到了这一点。最初发表在评论中。

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