问题列表 - 第44073页

将表达式传递给NHibernate中的方法会导致"ConstantExpression"类型的Object无法转换为"LambdaExpression"类型

在NHibernate 2和3中都会出现这个问题.我有一个A类,它有一个B类成员集.查询类直接执行得很好.但是当我将涉及类B的表达式之一传递给方法时,我得到以下错误:

System.ArgumentException:"System.Linq.Expressions.ConstantExpression"类型的对象无法转换为"System.Linq.Expressions.LambdaExpression"类型.

据我所知,我将完全相同的表达式传递给Any()方法.但出于某种原因,他们受到不同的待遇.我做了一些调试,看起来在第一个方法中,表达式被视为具有NodeType'Quote'的表达式,而第二个方法中的相同表达式似乎被视为具有NodeType'Constant'的表达式.第二种方法中表达式的父表达式具有NodeType"MemberAccess".所以看起来表达式树在不同的测试方法中是不同的.我只是不明白为什么以及如何解决这个问题.

课程涉及:

public class A
{
   public virtual int Id { get; set; }
   public virtual ISet<B> DataFields { get; set; }
}

public class B
{
   public virtual int Id { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

示例测试代码:

    [TestMethod]
    public void TestMethod1()
    {
        using (ISession session = sessionFactory.OpenSession())
        {
            var records = session.Query<A>()
                                 .Where<A>(a => a.DataFields
                                                 .Any(b => b.Id == 1));
            Console.Write("Number of records is {0}", records.Count());
        }
    }

    [TestMethod]
    public void TestMethod2()
    {
        GetAsWhereB(b => b.Id == …
Run Code Online (Sandbox Code Playgroud)

linq nhibernate expression subquery

1
推荐指数
1
解决办法
2424
查看次数

空比较

这可能听起来像一个真正的愚蠢问题,但请耐心等待:)所以我在我的代码中有一个if条件,如if ((msgBO.getEmpId().equals("") == false )) { // do something }我的问题是,如果我做出上述陈述,msgBO.getEmpId().equals(null) == false 它会有任何区别或这样我试图比较两个不同的东西?

java

3
推荐指数
1
解决办法
785
查看次数

-5
推荐指数
1
解决办法
233
查看次数

Python Twisted JSON RPC

任何人都可以推荐一些简单的代码来设置一个简单的JSON RPC客户端和服务器使用twisted?

我找到了txJSON-RPC,但我想知道是否有人有一些使用这些anc的经验可以推荐一些东西.

python rpc twisted json-rpc

19
推荐指数
1
解决办法
1万
查看次数

在java中用条件测试getType的子类

我必须找出方法返回类型是否是某个基类的子类.到目前为止,我找不到内置的方法来做到这一点,我只能找到一种方法来测试一个完全的类匹配.我也可以使用注释来做到这一点,但我的想法是,如果我碰巧添加一个新的子类,我不想添加额外的代码.我想过对所有可能的子类进行测试,或者创建一个无类型的对象并使用"instanceof"测试它的实例,但似乎没有什么是理想的.理想的情况是:

if (m.getReturnType() Extends Superclass.class)
Run Code Online (Sandbox Code Playgroud)

但是没有"扩展"功能类似于"instanceof"与实际实例.是否有一个我不知道的条件运算符?提前感谢您的任何想法.

这实际上是一个Android项目,所以我可能无法实现所有可能性.

java conditional android

3
推荐指数
1
解决办法
157
查看次数

在Postgresql中改变类型..如何正确地做到这一点?

我收到这个错误,但我不完全确定如何写这个以便它满足postgresql ..

ActionView::Template::Error (PGError: ERROR:  operator does not exist: character varying == unknown
LINE 1: ...ed_at > '2011-01-19 16:05:18.738413' AND category == 'humor'...
                                                             ^
HINT:  No operator matches the given name and argument type(s). You might need to add explicit type casts.
: SELECT     "posts".* FROM       "posts"  WHERE     (created_at > '2011-01-19 16:05:18.738413' AND category == 'humor')):
    77:             - for category in @categories
    78:               %li
    79:                 .new_posts
    80:                   - if current_user && !current_user.last_logins.select{|ll|ll.category_id == category.id}.empty? && Post.find(:all, :conditions => ["created_at > …
Run Code Online (Sandbox Code Playgroud)

sql postgresql comparison ruby-on-rails

0
推荐指数
1
解决办法
906
查看次数

SQLAlchemy:根据表字段查询自定义属性

我正在使用SQLAlchemy声明基础来定义我的模型.我定义了name一个从列(title)计算的属性:

class Entry(Base):
    __tablename__ = "blog_entry"
    id = Column(Integer, primary_key=True)
    title = Column(Unicode(255))
    ...

    @property
    def name(self):
        return re.sub(r'[^a-zA-Z0-9 ]','',self.title).replace(' ','-').lower()
Run Code Online (Sandbox Code Playgroud)

尝试使用时执行查询name,SQLAlchemy会抛出错误:

Session.query(Entry).filter(Entry.name == my_name).first()
>>> ArgumentError: filter() argument must be of type sqlalchemy.sql.ClauseElement or string
Run Code Online (Sandbox Code Playgroud)

经过一段时间的调查,我发现可能comparable_using()会有所帮助,但我找不到任何显示比较器引用该表另一列的示例.

这是可能的还是有更好的方法?

python sqlalchemy

6
推荐指数
2
解决办法
6045
查看次数

使用Reflection通过签名调用对象实例上的泛型方法:SomeObject.SomeGenericInstanceMethod <T>(T参数)

我怎么打电话SomeObject.SomeGenericInstanceMethod<T>(T arg)

有一些关于调用泛型方法的帖子,但不完全像这个.问题是method参数被约束为泛型参数.

我知道如果签名是相反的

SomeObject.SomeGenericInstanceMethod<T>(string arg)

然后我可以得到MethodInfo

typeof (SomeObject).GetMethod("SomeGenericInstanceMethod", new Type[]{typeof (string)}).MakeGenericMethod(typeof(GenericParameter))

那么,当常规参数是泛型类型时,如何获取MethodInfo?谢谢!

此外,泛型参数可能有也可能没有类型约束.

c# generics reflection methodinfo generic-method

2
推荐指数
1
解决办法
1万
查看次数

什么<>在Python中意味着什么

Python中<>的含义是什么?

我曾尝试在Google上搜索它,但我似乎无法进入搜索字词...

我还没有看到任何其他语言,否则我会试图找到它.

python

6
推荐指数
1
解决办法
811
查看次数

STL交换回报?

抱歉这么长的问题,但我尽量保持清醒.这在某种程度上遵循了我之前关于C++中的字符串的问题.我试图找出如何从没有冗余内存分配的函数返回std :: string,而不依赖于NRVO.我不想依赖NRVO的原因是:

  • 我们目前使用的编译器不支持它
  • 即使支持它也可能并不总是在调试模式下启用
  • 在某些情况下它可能会失败(例子)

请注意,我需要一个C++ 03兼容的解决方案(不幸的是没有C++ 0x rvalue引用......)

最简单的方法是传递引用并执行std :: swap,就像这样

void test(std::string& res)
{
    std::string s;
    //...
    res.swap(s);
}
Run Code Online (Sandbox Code Playgroud)

但是按价值返回比通过引用传递更自然且更方便,所以我想要实现的是:

std::string test()
{
    std::string s;
    //...
    return SOMETHING(s);
}
Run Code Online (Sandbox Code Playgroud)

理想情况下,它只会swap使用"返回值",但我不知道如何在C++中执行此操作.有auto_ptr已经移动而不是复制,我实际上可以使用auto_ptr<string>,但我想避免动态分配字符串对象本身.

我的想法是以某种方式"标记"一个字符串对象,它从函数返回以允许在返回时调用复制构造函数时移动其数据.所以我最终得到了这个代码,它完全符合我的要求:

struct Str
{
    struct Moveable
    {
        Str & ref;
        explicit Moveable(Str & other): ref(other) {}
    };

    Str() {}
    Str(const std::string& other) : data(other) {} // copy
    Str(Moveable& other) { data.swap(other.ref.data); } // move

    Moveable …
Run Code Online (Sandbox Code Playgroud)

c++ swap stl return-value-optimization

8
推荐指数
1
解决办法
1028
查看次数