找出LINQPad查询中的某些代码的定义

时间:2018-04-01 16:56:44

标签: c# linqpad

我在LINQPad查询中有以下C#代码段:

LocationDistrict

当我将鼠标悬停在private void addRentButton_Click(object sender, EventArgs e) { elibrary f1 = new elibrary(); string query = "INSERT INTO rents VALUES (@renterName, @rentStartDate, @rentEndDate)"; using(f1.Connection = new SqlConnection(f1.connectionString)) using(SqlCommand command = new SqlCommand(query, f1.Connection)) { f1.Connection.Open(); command.Parameters.AddWithValue("@renterName", rentNameBox.Text); command.Parameters.AddWithValue("@rentStartDate", DateTime.Now); command.Parameters.AddWithValue("@rentEndDate", rentEndDatePicker.Value); command.ExecuteScalar(); } rentEndDatePicker.Value = DateTime.Now; string Compilationquery =" INSERT INTO compilation VALUES (@bookId, SELECT SCOPE_IDENTITY())"; using(f1.Connection = new SqlConnection(f1.connectionString)) using(SqlCommand command = new SqlCommand(Compilationquery, f1.Connection)) { f1.Connection.Open(); command.Parameters.AddWithValue("@bookId", f1.listBook.SelectedValue); command.ExecuteScalar(); 上时,工具提示会显示:

LINQPad.User.LocationDistrict

enter image description here

如何找出User.LocationDistrict的来源?在右键单击上下文菜单中,转到定义F12 选项显示为灰色。

1 个答案:

答案 0 :(得分:1)

TL; DR:LINQPad根据连接数据库中的表自动生成类。每个表中的行类都放在def mydecorator(cls): cls.set_all_to_five() return cls @mydecorator class DoSomething(object): .... 命名空间中。

例如,在以下示例中,我使用的是AdventureWorks2012数据库。当我连接到它时,我可以在“连接”窗格中看到许多“表”:

Tables in AdventureWorks2012

我可以将它们拖到Query窗口并开始查询:

LINQ methods show up on tables

在这种情况下,地址类型为LINQPad.User,其中System.Data.Linq.Table<Address>的类型为Address

Showing type of individual records is under LINQPad.User

因此,在您的案例中,似乎LINQPad.User.Address似乎是类似名称表中单个记录的映射。它将在“连接”窗格中调用LocationDistrict,但由于LINQPad执行了一些命名规范化,因此可以在实际数据库中调用LocationDistricts

我想LINQPad的制造商需要一些地方来放置这些类型(以避免命名冲突),并确定LOCATION_DISTRICT作为可接受的命名空间。