none
实体框架如何判断一个表是否有记录? RRS feed

  • 问题

  • 想判断Entities1里的table1是否有记录

    if (Entities1.table1!=null && Entities1.table1.Count()>0) //判断一个Entities里的实体是否有记录 =>一直报错
    {......}
    else
    {......}
    这段代码当table1里没有记录时就会报错为什么? 要如何判断实体是否有记录应该如何做?

    • 已移动 Leo Liu - MSFT 2011年9月2日 7:22 Moved for better support. (发件人:Visual C#)
    2011年9月1日 1:28

答案

  • web.config或者是app.config 要如何配置才正确?

    我的一直有这种错误: 当table1里没有记录时就会报错,有记录这段代码就不报错,奇怪的很

    if (Entities1.table1!=null && Entities1.table1.Count()>0) =>对象名 'Entities1.table1' 无效

    我建议你删除原来的Entity文件(emdb),然后重新创建一个并且导入数据库相关表,在此之前请务必确定你的项目中有web.config或者是app.config。然后EF会自动生成数据库连接字符串并且潜入到<ConnectionStrings>节点中的。

    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    • 已标记为答案 tonny2003 2011年9月2日 7:24
    2011年9月2日 1:20

全部回复

  • 我是用.Count()没有报错,能否把代码贴上来看看?

    还有错误讯息是什么?


    Shadowと愉快なコード達
    2011年9月1日 2:28
  • 当table1里没有记录时就会报错

    if (Entities1.table1!=null && Entities1.table1.Count()>0)

    2011年9月1日 2:48
  • 当table1里没有记录时就会报错

    if (Entities1.table1!=null && Entities1.table1.Count()>0)


    能否提供"详细"的错误讯息?
    Shadowと愉快なコード達
    2011年9月1日 3:27
  • 对象名 'Entities1.table1' 无效。
    2011年9月1日 3:36
  • 对象名 'Entities1.table1' 无效。
    1. 检查数据表里是否有table1这个表
    2. 检查edmx里table1的EntitySetName是否为table1

    Shadowと愉快なコード達
    2011年9月1日 3:46
  • 当table1里没有记录时就会报错

    if (Entities1.table1!=null && Entities1.table1.Count()>0)  //判断是否有记录

    当table1里有记录就不报错, 说明1.数据表里有table1这个表;2.在edmx里table1的EntitySetName是为table1

    2011年9月1日 3:52
  • 当table1里没有记录时就会报错

    if (Entities1.table1!=null && Entities1.table1.Count()>0)  //判断是否有记录

    当table1里有记录就不报错, 说明1.数据表里有table1这个表;2.在edmx里table1的EntitySetName是为table1


    我完全可以的,我做了一个简单的表:

    其中id自增长,name是varchar(50)。表中无任何记录。

    我建议你自己看看是否正确配置了web.config或者是app.config:

    我的测试代码:

    public class MyClass
    {
        public static void Main()
        {
            using (CSharp.Entities e = new CSharp.Entities())
            {
                Console.WriteLine(e.tbtest.Count());
            }
        }
    }

     


    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年9月1日 6:01
  • web.config或者是app.config 要如何配置才正确?

    我的一直有这种错误: 当table1里没有记录时就会报错,有记录这段代码就不报错,奇怪的很

    if (Entities1.table1!=null && Entities1.table1.Count()>0) =>对象名 'Entities1.table1' 无效


    2011年9月1日 11:12
  • web.config或者是app.config 要如何配置才正确?

    我的一直有这种错误: 当table1里没有记录时就会报错,有记录这段代码就不报错,奇怪的很

    if (Entities1.table1!=null && Entities1.table1.Count()>0) =>对象名 'Entities1.table1' 无效

    我建议你删除原来的Entity文件(emdb),然后重新创建一个并且导入数据库相关表,在此之前请务必确定你的项目中有web.config或者是app.config。然后EF会自动生成数据库连接字符串并且潜入到<ConnectionStrings>节点中的。

    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    • 已标记为答案 tonny2003 2011年9月2日 7:24
    2011年9月2日 1:20
  • 用短路操作符,因为&&一定会判断两个表达式,当前一个表达式为真的时候,必然还要判断第二个表达式,这样当table1为null的时候,后面的必然会异常。你可以改一下

     

    if (Entities1.table1==null || Entities1.table1.Count()==0)
    {
    }
    else
    {
    }

     

    这样,如果是null则进入,反之,才会判断是否个数为0. 


    2011 c# mvp China. *George读起来像不像“饺子”?我爱吃饺子,我叫George。
    2011年9月2日 3:26