なぜ次のことが起こるのか、私は困惑しています:
シナリオは、Stcoxrefs (派生バージョンではなく純粋なエンティティ) 内に 2 つのビット フィールドがあるというものです。
以下を使用すると、int、char、varchar フィールドは正しいですが、linqpad でクエリを実行すると正しく動作しますが、ビット フィールドは DB の内容に関係なく常に false です。
public List<Stcoxref> GetAllowedStockholderTransferOrganisations(int currentStockHolder)
{
return (from s in Entities.Stcoxrefs
where s.OrganisationId == currentStockHolder
orderby s.CompanyName2
select s).ToList();
}
以下が証明するように、テーブルマッピングは正しいです...
次の関数を使用すると、すべてのフィールドが正しくなり、ビット フィールドは常に false ではなくなり、DB のデータに従って設定されます。
public List<Stcoxref> GetAllowedStockholderTransferOrganisations(int currentStockHolder)
{
List<Stcoxref> test1 = (from s in Entities.Stcoxrefs
where s.OrganisationId == currentStockHolder
orderby s.CompanyName2
select s).ToList();
return test1;
}
は?!?!?!?
編集: Stcoxref は EntityType です。検証するテーブル マッピングは次のとおりです。
STCOXREF_NO : int -> StcoxrefNo : Int32
ROLE_CODE : char -> RoleCode : String
ORG_ID : int -> OrganisationId : Int32
ROLE_CODE2 : char -> RoleCode2 : String
ORG_ID2 : int -> OrganisationId2 : Int32
COMPANY_NAME2 : varchar -> CompanyName2 : String
INACTIVE : bit -> InActive : Boolean
SUPRESS_EMAIL : bit -> SuppressEmail : Boolean
InActive と SuppressEmail の両方が奇妙な動作を示します。