我是LINQ to SQL的新手,我得到了一个我不想要的测试程序的奇怪结果。 该程序是一个非常简单的WinForms应用程序,它在DataGridView中显示SQL结果。
这是我的数据库设置。
以下是每个表的特定列信息。
最后这是通过MSMS显示的表的结果
这是我遇到的问题。 在建立与数据库的连接之后,我运行以下命令。
testingDatabase = new DataClasses1DataContext(SharedVariables.TestingConnection);
var query = from Orders in testingDatabase.GetTable<ORDER>()
select Orders;
//select new { Orders.CUST_ID, Orders.ORDER_NUM, Orders.ORDER_DATE };
return query;
它返回此。
我也试过这段代码
testingDatabase = new DataClasses1DataContext(SharedVariables.TestingConnection);
var query = from Orders in testingDatabase.ORDERs
select Orders;
//select new { Orders.CUST_ID, Orders.ORDER_NUM, Orders.ORDER_DATE };
return query;
然而结果是一样的。
然后我只能通过这样做得到我想要的结果
testingDatabase = new DataClasses1DataContext(SharedVariables.TestingConnection);
var query = from Orders in testingDatabase.GetTable<ORDER>()
//select Orders;
select new { Orders.CUST_ID, Orders.ORDER_NUM, Orders.ORDER_DATE };
return query;
然后我终于明白了。
任何人都可以告诉我如何做“选择客户”并让它不显示显示“LINQ_Testing.CUSTOMER”的列。我怀疑是因为它是外键引起的,因为它在CUSTOMER类中创建了一个EntityRef变量。
答案 0 :(得分:0)
尝试在Order类中添加Customer类的虚拟对象:
public virtual Customer customer { get; set; }
Order类中的外键关系(即cust_id)将自动延迟将Customer对象加载到其中。