小编Bra*_*son的帖子

LinqPad没有使用C#语句返回结果

已经很晚了,所以这一定是愚蠢的.我有LinqPad连接到我的数据库,似乎无法获得最简单的查询结果.

var q = from app in AppInstances
 select new {
 AppId = app.AppId
 };
Run Code Online (Sandbox Code Playgroud)

当我运行它时,LinqPad说它成功执行(C#语句模式).没有什么是退缩的.

我可以编写以下非常简单的Lambda(C#表达式模式):

AppInstances.Select (p => p.AppId)
Run Code Online (Sandbox Code Playgroud)

这很有效.为什么?我更喜欢使用非lambda查询构建功能.我确信这一切都是愚蠢的.

sql linq

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

安装自行开发的Windows服务

我正在尝试部署我写的服务.这是InstallLog文件:

Installing assembly 'c:\Users\brwatson\Development\Projects\TweetLinks\TweetLinkQueue\bin\Debug\TweetLinkQueue.exe'.
Affected parameters are:
   logtoconsole = 
   assemblypath = c:\Users\brwatson\Development\Projects\TweetLinks\TweetLinkQueue\bin\Debug\TweetLinkQueue.exe
   logfile = c:\Users\brwatson\Development\Projects\TweetLinks\TweetLinkQueue\bin\Debug\TweetLinkQueue.InstallLog
Installing service TweetLinkService...
Creating EventLog source TweetLinkService in log Application...
Rolling back assembly 'c:\Users\brwatson\Development\Projects\TweetLinks\TweetLinkQueue\bin\Debug\TweetLinkQueue.exe'.
Affected parameters are:
   logtoconsole = 
   assemblypath = c:\Users\brwatson\Development\Projects\TweetLinks\TweetLinkQueue\bin\Debug\TweetLinkQueue.exe
   logfile = c:\Users\brwatson\Development\Projects\TweetLinks\TweetLinkQueue\bin\Debug\TweetLinkQueue.InstallLog
Restoring event log to previous state for source TweetLinkService.
An exception occurred during the Rollback phase of the System.Diagnostics.EventLogInstaller installer.
System.Security.SecurityException: The source was not found, but some or all event logs could not be searched.  Inaccessible logs: Security.
An …
Run Code Online (Sandbox Code Playgroud)

c# windows-services

35
推荐指数
3
解决办法
4万
查看次数

appSettings和ConfigurationManager.AppSettings问题

我搜索了网站,虽然我发现了一些非常有用的信息,但我无法弄清楚我的代码是怎么回事.我有以下web.config:

<?xml version="1.0"?>
<configuration>
  <system.web>
  </system.web>

  <system.webServer>
  </system.webServer>

  <appSettings>
    <add key="APIKey" value="23e24c73feed7ca0f6afd876575842de"/>
    <add key="Secret" value="################################"/>
    <add key="Callback" value="http://localhost:55994/"/>
    <add key="Suffix" value="My3Words"/>
  </appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)

我已经删除了system.web和system.webServer中的内容,但它是ASP.NET MVC应用程序中生成的默认设置.

我试图访问该部分中的键(这是一个使用FB Connect的简单Facebook应用程序).

在我的代码中,我有以下行:

return ConfigurationManager.AppSettings["APIKey"];
Run Code Online (Sandbox Code Playgroud)

它返回null.我无法弄清楚发生了什么.我有必要的:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;
using System.Configuration;
Run Code Online (Sandbox Code Playgroud)

在我的.cs文件的顶部.我有一个非常强烈的怀疑,键盘后(即在我的大脑中)存在错误,但我无法解决这个问题.有任何想法吗?

c# asp.net asp.net-mvc

17
推荐指数
3
解决办法
7万
查看次数

尝试更改IQueryable集合的属性

我正在尝试做我认为简单的事情,但我怀疑我太难以知道我可能做错了什么.我有一个LINQ查询返回:

IQueryable<CWords> Result
Run Code Online (Sandbox Code Playgroud)

CWords是一个类,我定义如下:

public class CWords
{
    public CWords(){}
    public string _column1{ get; set; }
    public float  _column2{ get; set; }

    public void fixData(){}
}
Run Code Online (Sandbox Code Playgroud)

在我的代码中,我试图修改Result的每个成员的_column2字段.我试过了:

foreach (CWords item in Result)
{
    item.fixData();
}
Run Code Online (Sandbox Code Playgroud)

但当然这不起作用.item不在适当的范围内,因此我在fixData中所做的任何更改都没有在Result中.

因为你无法索引IQueryable,我的解决方法是执行以下操作:

var items = goodWords.ToList();

for (int i = 0; i < items.Count(); i++ )
   {
    items[i].fixData();
   }
Run Code Online (Sandbox Code Playgroud)

这是正确的方法吗?

c# linq linq-to-sql

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

IE8 Win7 Facebook Connect问题

更新4/8/09 - 我进入了一个新的一周,没有任何进展,也没有来自Facebook论坛的答案.在那里没有一个回应,这是非常令人失望的.我也无法弄清楚如何在这个问题上给予赏金,但我真的非常希望能够解决这个问题.


我看了很多帖子,看看之前是否发布过,但事实并非如此.这是简短的版本:

我将通过示例FB Connect教程(v1),并且无法在Win7上的IE8中使其工作.它在Win7上的FF3上按预期工作.

长版:

我很惊讶事情没有用,因为我几乎复制并粘贴了内容.我通过alert()javascript调用跳过了这一点,所以我把它放进去看看解析器是否达到了这个目的.我把以下代码放入:

[my raw html]
Or use, <fb:login-button length="long" onlogin="alert('yo!!!');"></fb:login-button>
[/my raw html]
Run Code Online (Sandbox Code Playgroud)

警报不会弹出IE8.它适用于FF.

当我改回调用update_user_box()时,我的HTML看起来像:

Or use, <fb:login-button length="long" onlogin="update_user_box();"></fb:login-button>

<script type="text/javascript">
    function update_user_box() {
        var user_box = document.getElementById("user");
        user_box.innerHTML =
            "<span>"
            + "<fb:profile-pic uid='loggedinuser' facebook-logo='true'></fb:profile_pic>"
            + "Welcome, <fb:name uid='loggedinuser' useyou='false'></fb:name>."
            + "You are signed in."
            + "</span>"

        FB.XFBML.Host.parseDomTree();
    }

    FB.init("23e24c73feed7ca0f6afd876575842de", "../../Connect/xd_receiver.htm", { "ifUserConnected": update_user_box });
</script>
Run Code Online (Sandbox Code Playgroud)

再次,这在FF3中工作就好了.我的照片显示了一切.它实际上让我更加不高兴它在FF3中工作而不是完全没有工作的情况.

以下是IE8中见证的行为:

  1. 当我点击FBConnect按钮时.弹出javascript窗口并加载正确的登录页面

  2. 焦点更改回主窗口(与我的应用程序一起)

  3. IE8主窗口(我单击连接按钮的窗口)现在显示了一个facebook登录页面.

  4. 当我将我的凭据输入FB javascript窗口时,页面会加载该页面的空白文档URL:http:// localhost:55994/Connect/xd_receiver.htm?fb_login&fname = _opener&session =%7B%22session_key%22%3A%223 .A4DpHk4nrKHooB7K_Q6EiA __.86400.1238796000-623225%22%2C%22uid%22%3A%22623225%22%2C%22expires%22%3A1238796000%2C%22secret%22%3A%22HtjtJS_xg8dX7TR7lLggew __%22%2C%22sig%22%3A%22ae12c0f98d4567612b70861314d42fbb %22%7D

查看该页面的来源: …

asp.net asp.net-mvc facebook internet-explorer-8

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

用于组合数据的实体框架算法

这属于我继承的项目,不能更改表结构或数据访问模型.我被要求优化用于将数据插入数据库的算法.

我们在表T中有一个数据集.从那里,我们拉出一个我们将调用A的集合.我们还查询XML feed并得到一个我们将调用X的集合.

  • 如果X中的值在A中,则必须更新A中的记录以反映X.record的数据
  • 如果X中的值不在A中,则必须将X.record插入到A中
  • 如果A中的值不在X中,则A.record必须保留在A中
  • 必须对所有记录完全迭代X,并且必须更新A.

所有这些更改都需要插回到数据库中.

设置的算法执行以下操作:

Query XML into a LIST
foreach over the XML LIST
    look up foreach.item in A via LINQ (i.e. query = from record in A where
                                                         record.GUID == foreach.item.GUID
                                                         select record)
    if query.Count() == 0
        insert into A (via context.AddToTableName(newTableNameObject)
    else
        var currentRecord = query.First()
        set all properties on currentRecord = properties from foreach.item
        context.SaveChanges()
Run Code Online (Sandbox Code Playgroud)

我知道这不是最理想的.我试图将A放入foreach循环之外的对象(称为queryA),以便将查询移动到内存而不是访问磁盘,但在考虑完之后,我意识到数据库已经在内存中了.

已经将计时器对象添加到算法中,很明显,花费最多时间的是SaveChanges()函数调用.在某些情况下,它是20毫秒,而在其他一些情况下,在可解释的情况下,它会跳到100毫秒.

我宁愿只调用SaveChanges()一次.考虑到我对EF(最好是最薄的)知识的深度以及无法更改表结构并且必须保留不在X中的A的数据的限制,我无法弄清楚如何做到这一点.

建议?

database sql-server linq-to-entities entity-framework

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

在 C# 中反序列化 Json - 如何处理 null 返回值

我正在使用以下代码:

myObj jsonStream = ser.Deserialize<myObj>(jsonStream);
Run Code Online (Sandbox Code Playgroud)

一切都工作正常,直到返回的 JSON 的其中一个字段为空值。IE:

"name" : null
Run Code Online (Sandbox Code Playgroud)

在反序列化过程中,它抛出异常。在我的 myObj 中,我有一个成员:

public string name;
Run Code Online (Sandbox Code Playgroud)

如何使用 System.Web.Script.Serialization 程序集优雅地处理从数据源返回的奇怪空值?我试过:

public string name = "";
Run Code Online (Sandbox Code Playgroud)

但这没有用。

c# json

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

实体框架日期解析

我正在尝试进行LINQ to Entities查询(我仍然非常熟悉EF并且我正在学习它比LinqToSQL差异化)并且我正在尝试做这样的事情:

DateTime begin = new DateTime(2011, 1, 1);

Apps = (from app in context.Instances
                 where app.ReleaseDate.Date == begin
                 select new ScalpApp
                 {
                 Image = app.Image,
                 PublisherName = app.PublisherName,
                 }).ToList();
Run Code Online (Sandbox Code Playgroud)

虽然这在LinqPad中有效,但它不在我的代码中.抛出的异常是:

The specified type member 'Date' is not supported in LINQ to Entities.
Run Code Online (Sandbox Code Playgroud)

仅支持初始值设定项,实体成员和实体导航属性.

我如何在LinqToEF中执行此操作?DB中的字段是完整的DateTime(带有时间码),我试图仅根据日期进行解析.

c# entity-framework

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

App Engine数据存储区IN操作员 - 如何使用?

阅读:http://code.google.com/appengine/docs/python/datastore/gqlreference.html

我想用:

:= IN

但我不确定如何使它工作.我们假设如下

class User(db.Model):
    name = db.StringProperty()

class UniqueListOfSavedItems(db.Model):
    str = db.StringPropery()
    datesaved = db.DateTimeProperty()

class UserListOfSavedItems(db.Model):
    name = db.ReferenceProperty(User, collection='user')
    str = db.ReferenceProperty(UniqueListOfSavedItems, collection='itemlist')
Run Code Online (Sandbox Code Playgroud)

如何进行查询以获取用户保存的项目列表?显然我可以这样做:

q = db.Gql("SELECT * FROM UserListOfSavedItems WHERE name :=", user[0].name)
Run Code Online (Sandbox Code Playgroud)

但这给我一个关键列表.我现在想要获取该列表并将其放入查询中以从UniqueListOfSavedItems中获取str字段.我以为我能做到:

q2 = db.Gql("SELECT * FROM UniqueListOfSavedItems WHERE := str in q")
Run Code Online (Sandbox Code Playgroud)

但是有些事情不对......任何想法?是(我在我的日常工作,所以现在不能测试):

q2 = db.Gql("SELECT * FROM UniqueListOfSavedItems __key__ := str in q)
Run Code Online (Sandbox Code Playgroud)

旁注:要搜索的是一个非常难以解决的问题,因为我真正关心的是"IN"运算符.

python google-app-engine gql google-cloud-datastore

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

从http查询中确定正在使用的DB

是否有一种简单的方法可以从外部HTTP请求确定网站背后使用的数据库?即,我发出一个HTTP请求,获取任何来自网络服务器的数据 - 我可以检查任何数据并可靠地确定正在使用的数据库吗?我想不是,但想到我会问这个小组.

database http

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