Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq to sql BLToolkit MapValue未映射_Linq To Sql_Attributes_Bltoolkit - Fatal编程技术网

Linq to sql BLToolkit MapValue未映射

Linq to sql BLToolkit MapValue未映射,linq-to-sql,attributes,bltoolkit,Linq To Sql,Attributes,Bltoolkit,我们开始转换成BL工具包,但遇到了一些问题,没有找到答案。其中一个问题是无法正确映射DTO上的MapValue属性 使用T4模板,我们生成以下内容(作为示例): 我们的数据库是Sybase,字段是接受“y”或“n”的字符(1) 但是,当我查看以下链接查询生成的SQL时,它正在写入[contractor_fl]=0。我需要的是[u fl]=“n” var results = (from i in facade.InputList where (

我们开始转换成BL工具包,但遇到了一些问题,没有找到答案。其中一个问题是无法正确映射DTO上的MapValue属性

使用T4模板,我们生成以下内容(作为示例):

我们的数据库是Sybase,字段是接受“y”或“n”的字符(1)

但是,当我查看以下链接查询生成的SQL时,它正在写入[contractor_fl]=0。我需要的是[u fl]=“n”

var results = (from i in facade.InputList
               where (
                   i.UserIdentifier == criteria.UserId &&
                   i.CounterpartyFlag == false &&
                   i.Name == criteria.Name)
               select i);  

有谁在MapValue方面运气更好吗?有什么建议吗

linq查询不支持这种类型的映射。问题是CounterpartyFlag字段可以映射到“y”、“n”值,但表达式中的“false”不能映射

您可以对CounterpartyFlag字段类型使用枚举:

public enum
{
    [MapValue('y')] Yes,
    [MapValue('n')] No
}

这应该行得通。

谢谢,这似乎让我们克服了这个障碍。我确实有个问题要问。使用这个插入方法:publicstaticintinsert(这个表目标,表达式setter);“CounterpartyFlag=false”很好用。因此,在直接从表的DTO插入时,转换就成功了。如果你能解释的话,有什么区别?我很好奇,我希望我的队友也会想知道。
public enum
{
    [MapValue('y')] Yes,
    [MapValue('n')] No
}