我在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
如何找出User.LocationDistrict的来源?在右键单击上下文菜单中,转到定义F12 选项显示为灰色。
答案 0 :(得分:1)
TL; DR:LINQPad根据连接数据库中的表自动生成类。每个表中的行类都放在def mydecorator(cls):
cls.set_all_to_five()
return cls
@mydecorator
class DoSomething(object):
....
命名空间中。
例如,在以下示例中,我使用的是AdventureWorks2012数据库。当我连接到它时,我可以在“连接”窗格中看到许多“表”:
我可以将它们拖到Query窗口并开始查询:
在这种情况下,地址类型为LINQPad.User
,其中System.Data.Linq.Table<Address>
的类型为Address
:
因此,在您的案例中,似乎LINQPad.User.Address
似乎是类似名称表中单个记录的映射。它将在“连接”窗格中调用LocationDistrict
,但由于LINQPad执行了一些命名规范化,因此可以在实际数据库中调用LocationDistricts
。
我想LINQPad的制造商需要一些地方来放置这些类型(以避免命名冲突),并确定LOCATION_DISTRICT
作为可接受的命名空间。