使用.Contains()和linq-to-sql(using .Contains() with linq-to-sql)
我有以下查询接收作为参数的整数列表:
public int GetMostRecent(List<int> TheIDs) { ...using MyDC... var TheMostRecentID = (from d in MyDC.Data where TheIDs.Contains(d.ID) orderby d.DateTime select d.ID).LastOrDefault(); }
这是将参数集合中的列表与数据库中的数据进行匹配的最佳方式,还是比在linq-to-sql中使用.Contains()方法更好的方法。
谢谢。
I have the following query that receives a list of ints as a parameter:
public int GetMostRecent(List<int> TheIDs) { ...using MyDC... var TheMostRecentID = (from d in MyDC.Data where TheIDs.Contains(d.ID) orderby d.DateTime select d.ID).LastOrDefault(); }
Is this the best way to match a list within a parameter collection to data in the database or is there a better way than using the .Contains() method in linq-to-sql.
Thanks.
原文:https://stackoverflow.com/questions/9034673
最满意答案
1:
if(CMAKE_BUILD_TYPE STREQUAL "Debug") add_definitions(/DYOURDEFINITION) endif()
2:如果我理解你的话,你需要创建一个选项变量
option(USE_OPENGL "Use OpenGL or DirectX")
然后在添加新目标时检查它:
if(USE_OPENGL) add_subdirectory(OpenGL) else() add_subdirectory(DirectX) endif()
当然,你应该在OpenGL /和DirectX / dirs中创建CMakeLists.txt。
1:
if(CMAKE_BUILD_TYPE STREQUAL "Debug") add_definitions(/DYOURDEFINITION) endif()
2: If i understood you right, you need to create an option variable
option(USE_OPENGL "Use OpenGL or DirectX")
And then check for it when you are adding new target:
if(USE_OPENGL) add_subdirectory(OpenGL) else() add_subdirectory(DirectX) endif()
Of course, you should create CMakeLists.txt in OpenGL/ and DirectX/ dirs.
相关问答
更多-
Visual Studio中的多个调试和发布配置选项(Multiple debug and release configuration options in Visual Studio)[2022-06-18]
第一个告诉你你现在正在使用哪一个(如果你说构建将构建哪个配置 - 如果你调试将启动哪个配置等) 第二个处理服务器将如何构建您的aspx / razor /等。 页面。 第三个就是这样,你可以在第一时间改变不同配置的设置! 最后一个告诉您要部署哪个配置 - 无论当前所选配置(从1开始)将显示什么 - 当然它将取决于3中的设置,并且很可能从2部署文件。 所以不 - 只有其中一个是不够的 The first one tells you in which one you are working right now ... -
尝试在文件夹C:/ Tmp中生成构建系统,以测试问题是否与损坏的缓存或路径问题有关。 要将其构建到问题中所述的文件夹: 检查您是否在“PM&R”个人文件夹中具有写入权限 更改生成器时删除cmake缓存 Try to generate build system in the folder C:/Tmp to test if the problem is related to corrupted cache or path issues. To build it to the folder stated in ...
-
这不是Visual Studio特定的问题。 通常,C ++不保证使用一个版本的编译器构建的库将使用由同一编译器的不同版本或不同编译器构建的可执行文件。 这是因为C ++为编译器提供了如何生成其对象的二进制布局的一些自由。 这是一个非常古老的问题,没有简单的解决方案。 如果您不想接受对库接口的任何限制,则需要为每个受支持的编译器版本重建库,并进行严格的ABI更改(这通常意味着编译器版本中每个编译器和主要版本的单独构建) )。 CMake无法为您执行此操作,因为每个CMake配置运行仅为一个特定编译器生成CM ...
-
是的,但不是很漂亮...... 您需要更新所有目标上的RUNTIME_OUTPUT_DIRECTORY , LIBRARY_OUTPUT_DIRECTORY和ARCHIVE_OUTPUT_DIRECTORY属性。 您需要为每个配置执行此操作(Debug,RelWithDebInfo等) 最简单的方法是使用CMAKE _...等效项“全局”执行此操作。 例如,检查以下示例,它将bin /和lib /设置为“全局”二进制文件/库输出目录: # First for the generic no-config ca ...
-
如果您在解决方案资源管理器中右键单击该解决方案并访问属性,您将看到一个属性对话框,让您选择配置属性。 在该对话框的右上角,您将看到一个配置管理器按钮。 点击它启动配置管理器对话框。 单击活动解决方案配置下拉列表,然后选择新建...以进行新配置。 见下面的截图。 If you right-click the solution in Solution Explorer and access properties you will see a properties dialog that lets you sel ...
-
1: if(CMAKE_BUILD_TYPE STREQUAL "Debug") add_definitions(/DYOURDEFINITION) endif() 2:如果我理解你的话,你需要创建一个选项变量 option(USE_OPENGL "Use OpenGL or DirectX") 然后在添加新目标时检查它: if(USE_OPENGL) add_subdirectory(OpenGL) else() add_subdirectory(DirectX) endif() 当然,你应该在 ...
-
尝试更新您的CMake版本。 CMake 3.1的cmake-gui的Configue对话框将相应的条目列为Visual Studio 12 2013 : 在较早的CMake版本(3.0以前)中,这些条目省略了年份,仅显示版本号,因此条目只是读取Visual Studio 12 。 如果您的CMake版本更旧,则可能根本不支持Visual Studio 2013。 但是,您仍然应该能够打开为旧版Visual Studio版本生成的项目文件。 这可能需要Visual Studio进行额外的转换步骤,这可能会使 ...
-
CMake Visual Studio proj Generator和每个CONFIG链接(CMake Visual Studio proj Generator and per CONFIG linking)[2023-02-27]
经过一番挖掘,我可以自己回答,我会为其他可能会遇到这个问题的人发布答案。 方法2是正确答案,但由于列表变量LIBS_DEBUG和LIBS_RELEASE ,它无法正常工作 。 看来列表扩展在generator-expression中没有完全正常工作,我发现了一个可能与之相关的旧bug 。 解决方案是自己扩展列表,然后在列表的每个元素上调用generator-expression。 这个解决方案对我有用: foreach(DL ${LIBS_DEBUG}) target_link_libraries(MyPr ... -
这会将问题的第一部分的复选框设置为未选中状态: set_property(TARGET
PROPERTY EXCLUDE_FROM_DEFAULT_BUILD_DEBUG TRUE) 现在我想知道,编译器命令行来自哪里,因为/D_DEBUG在所有具有属性的对话框中都没有,Visual Studio已经向我展示了(问题的第二部分)。 我正在VS2013中构建这个项目。 最初,该字符串/D_DEBUG存在于项目属性 - > C / C ++ - ... -
您可以使用LINK_FLAGS目标属性添加自定义链接器选项: add_executable(foo ${FOO_SOURCES}) if(MSVC) set_property(TARGET foo APPEND PROPERTY LINK_FLAGS /DEBUG) endif() 这将为Visual Studio构建中的所有配置设置/DEBUG标志。 也可以仅为特定配置添加标志。 请注意,这实际上只设置了链接器标志而没有其他内容。 如果您想要一个功能齐全的调试版本,您还必须设置其他标志。 正如评 ...