实体框架Linq To Entities位域/布尔问题

时间:2013-05-01 11:38:36

标签: c# entity-framework linq-to-entities

我很困惑为什么会发生以下情况:

场景是在Stcoxrefs(纯实体而不是派生版本)中有两个位字段。

使用以下int,char,varchar字段是正确的,但无论数据库中有什么,位字段始终为false,尽管在linqpad中运行查询的工作正常:

public List<Stcoxref> GetAllowedStockholderTransferOrganisations(int currentStockHolder)
{
    return (from s in Entities.Stcoxrefs
            where s.OrganisationId == currentStockHolder
            orderby s.CompanyName2
            select s).ToList();
}

表映射是正确的,因为以下内容将证明......

使用以下函数,所有字段都是正确的,位字段不再总是假,并根据数据库中的数据进行设置。

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都表现出奇怪的行为。

1 个答案:

答案 0 :(得分:0)

将此作为答案,因为它是一种答案,但也是如此,这个问题没有被添加到不断增长的未答复问题清单中。

Gah感谢您的帮助/时间!经过进一步测试,以前的开发人员似乎共享了上下文!哎呀...

因此,在工作单元中执行功能可以按预期工作。共享上下文必须一直搞砸了位字段。

甚至更奇怪的是变量使得工作的行为?!