Я пытаюсь разработать проект с DevExpress mvc. Я использовал Entity Framework для подключения к базе данных.
То, что я хочу сделать, это объединить две таблицы с companyId в таблице c и с guId в таблице k
что я хочу сделать; 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));
}
Действия get соединяет таблицу драйверов с таблицей компании и отправляет данные в средство просмотра
Редактировать
моя таблица 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; }
}