【发布时间】:2018-09-06 07:22:31
【问题描述】:
我正在尝试使用 DevExpress mvc 开发一个项目。我使用实体框架进行数据库连接。 我想要做的是将两个表与 c 表中的 companyId 和 k 表中的 guId 组合起来
我想做什么; https://ekitapdfindir.com/istek.png
我的索引视图;
@(Html.DevExtreme().DataGrid<plate_logs>()
.ShowBorders(true)
.DataSource(d => d.WebApi().Controller("PlateLogs").Key("Guid"))
.Columns(columns =>
{
columns.AddFor(m => m.Guid).Width(100);
columns.AddFor(m => m.LastUpdateDate).Width(90);
// Columns Location ID
columns.AddFor(m => m.LocationId)
.Lookup(lookup =>
lookup
.DataSource(d => d.WebApi()
.Controller("Locations")
.LoadAction("Get")
.Key("adsad"))
.DisplayExpr("Name")
.ValueExpr("Guid"));
// Columns Gate ID
columns.AddFor(m=>m.GateId)
.Lookup(lookup => lookup
.DataSource(d => d.WebApi()
.Controller("Gates")
.LoadAction("Get")
.Key("GateId"))
.DisplayExpr("Name")
.ValueExpr("Guid"));
// Columns Departmant ID
columns.AddFor(m => m.DepartmentId)
.Lookup(lookup => lookup
.DataSource(d => d.WebApi()
.Controller("Departments")
.LoadAction("Get")
.Key("DepartmentId"))
.DisplayExpr("Name")
.ValueExpr("Guid"));
// Columns Driver ID
columns.AddFor(m => m.DriverId)
.Lookup(lookup => lookup
.DataSource(d => d.WebApi()
.Controller("Driver")
.LoadAction("Get")
.Key("DriverId"))
.DisplayExpr("FullName")
.ValueExpr("Guid"));
// Columns Company ID
columns.AddFor(m => m.DriverId)
.Lookup(lookup => lookup
.DataSource(d => d.WebApi()
.Controller("Driver")
.LoadAction("Gets"))
.DisplayExpr("Name")
.ValueExpr("Guid"));
})
.Paging(p => p.PageSize(20))
)
)
我的驱动控制器;
LCWCENTEREntities db = new LCWCENTEREntities();
[HttpGet]
public HttpResponseMessage Get(DataSourceLoadOptions loadOptions)
{
var model = db.driver.ToList();
return Request.CreateResponse(DataSourceLoader.Load(model, loadOptions));
}
[HttpGet]
public HttpResponseMessage Gets(DataSourceLoadOptions loadOptions)
{
var sorgu = from d in db.driver
join c in db.company
on d.CompanyId equals c.Guid
select new {d,c };
return Request.CreateResponse(DataSourceLoader.Load(sorgu, loadOptions));
}
gets 操作将 driver 表连接到 company 表并将数据发送到查看器
编辑
我的 plate_log 表;
public partial class plate_logs
{
public int Id { get; set; }
public long Guid { get; set; }
public string Plate { get; set; }
public Nullable<long> DriverId { get; set; }
public Nullable<System.DateTime> LastUpdateDate { get; set; }
public Nullable<byte> isRemoved { get; set; }
}
驱动表;
public partial class driver
{
public int Id { get; set; }
public long Guid { get; set; }
public string Name { get; set; }
public string Surname { get; set; }
public string FullName { get; set; }
public Nullable<long> CompanyId { get; set; }
public Nullable<byte> isRemoved { get; set; }
}
和公司表;
public partial class company
{
public short Id { get; set; }
public long Guid { get; set; }
public string Name { get; set; }
public string Address { get; set; }
public string PhoneNumber { get; set; }
public Nullable<short> isSync { get; set; }
public Nullable<System.DateTime> LastUpdateDate { get; set; }
public Nullable<byte> isRemoved { get; set; }
}
【问题讨论】:
-
您的问题不清楚。但作为旁注:条件不应该是
on d.CompanyGuid equals c.Guid而不是d.CompanyId equals c.Guid? -
问题编辑sql数据库
-
你并不是真的在问问题。我们可以帮助解决什么问题?
-
我想从公司的表格中抽出名字
-
这仍然不是问题。一个典型的 Stack Overflow 问题应该包含四个要素:您想要实现什么,您尝试了什么,您没有成功或陷入困境的地方,以及一个询问如何解决这个特定问题的问题。您的“问题”缺少最后两个元素。
标签: c# .net join linq-to-sql devexpress