0
従業員のIDプロパティにTitleID値が設定されていることがわかりました(UPDATE 3のServiceStack - [Reference] or [Ignore]?参照)4.0.56の問題があります。ServiceStack DTOマッピングの問題
DTOはリクエスト:
[Route("/employees", "GET")]
public class FindEmployeesRequest : QueryDb<Employee>,
IJoin<Employee, EmployeeType>,
IJoin<Employee, Department>,
IJoin<Employee, Title> {
public int? ID { get; set; }
public int[] IDs { get; set; }
public string UserID { get; set; }
public string[] UserIDs { get; set; }
public int? EmployeeTypeID { get; set; }
public int[] EmployeeTypeIDs { get; set; }
public int? DepartmentID { get; set; }
public int[] DepartmentIDs { get; set; }
public int? TitleID { get; set; }
public int[] TitleIDs { get; set; }
public string LastNameStartsWith { get; set; }
public DateTime[] DateOfBirthBetween { get; set; }
public DateTime[] HireDateBetween { get; set; }
public bool? IsActive { get; set; }
public bool? IsEligibleToOrderLunch { get; set; }
[QueryDbField(Template = "(MONTH({Field}) = {Value})", Field = "DateOfBirth")]
public int? BirthMonth { get; set; }
[QueryDbField(Template = "(DAY({Field}) = {Value})", Field = "DateOfBirth")]
public int? BirthDay { get; set; }
[QueryDbField(Template = "({Field} LIKE '%(Incoming)')", Field = "EmployeeTypeName")]
public bool? IsIncoming { get; set; }
[QueryDbField(Template = "(FirstName LIKE {Value} OR LastName LIKE {Value} OR PreferredName LIKE {Value})", ValueFormat = "%{0}%", Field = "ID")]
public string NameSearch { get; set; }
[QueryDbField(Template = "(FirstName LIKE {Value} OR LastName LIKE {Value} OR PreferredName LIKE {Value} OR Department.Name LIKE {Value} OR Title.Name LIKE {Value})", ValueFormat = "%{0}%", Field = "ID")]
public string BasicSearch { get; set; }
[QueryDbField(Template = "({Field} LIKE {Value})", Field = "EmployeeTypeName", ValueFormat = "%{0}%")]
public string EmployeeTypeSearch { get; set; }
[QueryDbField(Template = "({Field} LIKE {Value})", Field = "DepartmentName", ValueFormat = "%{0}%")]
public string DepartmentSearch { get; set; }
[QueryDbField(Template = "({Field} LIKE {Value})", Field = "TitleName", ValueFormat = "%{0}%")]
public string TitleSearch { get; set; }
}
問題を示す "SELECT * FROM" ん基本的にすべての要求 - ここのためのプロファイラからいくつかのSQLです: "/従業員がID = 101の&フィールド= *?"
:。(TitleID)
exec sp_executesql N'SELECT *
FROM "Employee" INNER JOIN "EmployeeType" ON
("EmployeeType"."ID" = "Employee"."EmployeeTypeID") INNER JOIN "Department" ON
("Department"."ID" = "Employee"."DepartmentID") INNER JOIN "Title" ON
("Title"."ID" = "Employee"."TitleID")
WHERE "Employee"."ID" = @0',N'@0 int',@0=101
私はこのクエリを自分自身を実行すると、 "従業員" "ID" は101ですが、サービスからの応答では、それは67です0
ありがとう@mythz - RTFM ... – jaybird