小编Tom*_*len的帖子

C#枚举返回带有中断的字符串

我需要我的枚举返回一个特定的字符串,但我无法弄清楚如何让它返回一个包含中断的字符串而无需进行转换的方法.没有辅助方法可以LicenseTypes.DISCOUNT_EARLY_ADOPTER返回DISCOUNT EARLY-ADOPTER吗?

// All license types
public enum LicenseTypes
{
    DISCOUNT,
    DISCOUNT_EARLY_ADOPTER,
    COMMERCIAL,
    COMMERCIAL_EARLY_ADOPTER
}

// Convert enum to correct string
public static string LicenseTypeToString(LicenseTypes Enum)
{
    if (Enum == LicenseTypes.COMMERCIAL)
        return "COMMERCIAL";
    else if (Enum == LicenseTypes.COMMERCIAL_EARLY_ADOPTER)
        return "COMMERCIAL EARLY-ADOPTER";
    else if (Enum == LicenseTypes.DISCOUNT)
        return "DISCOUNT";
    else if (Enum == LicenseTypes.DISCOUNT_EARLY_ADOPTER)
        return "DISCOUNT EARLY-ADOPTER";
    else
        return "ERROR";
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net enums

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

Stackoverflow错误C#与getter和setter

这是工人阶级:

namespace Lite
{
    public class Spec
    {
        public int ID { get; set; }

        public string Name { get; set; }
        public string FriendlyName { get; set; }
        public int CategoryID { get; set; }
        public int Width { get; set; }
        public int Height { get; set; }
        public string UOM { get; set; }
        public int Pagination { get; set; }
        public int ColoursFront { get; set; }
        public int ColoursBack { get; set; }
        public string …
Run Code Online (Sandbox Code Playgroud)

c# asp.net getter getter-setter

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

Linq回归第一次约会

我有查询:

var q = db.tblArcadeGamePlays
    .Where(c => c.GameID == GameID && c.ReferalID != 0 && c.ReferalID != null)
    .GroupBy(r => new { r.ReferalID })
    .Select(g => new { Plays = g.Count(), URL = g.Key.ReferalID })
    ;       
Run Code Online (Sandbox Code Playgroud)

tblArcadeGamePlays还有一个字段Date,在该组中我想返回该组包含的最早观察日期.

我该怎么做?

c# linq asp.net linq-to-sql

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

Stack Overflow的MVC mini分析器(安装)

我已经下载了迷你探查器:http: //code.google.com/p/mvc-mini-profiler/

我正在使用带有webforms的ASP.net 4.0(VS 2010).我真的很困惑如何安装它.我已经打开了下载中包含的各种项目,大多数都没有打开没有错误.

我有点期待一个DLL只是包括,但这显然是错误的!我搜索了安装说明但找不到任何安装说明.

谁能帮帮我吗?

c# asp.net profiling asp.net-4.0 mvc-mini-profiler

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

如何最好地优化这一小部分c#Linq代码

如果你看一下我们的街机主页:

http://www.scirra.com/arcade

在右上方有一个方框,显示最后一个玩这个游戏的人.在我正在使用的分析器中,它显示为运行900毫秒,这占总页面加载时间的大约80%.

查询相对简单:

// Recent players
using (MainContext db = new MainContext())
{
    var q = (from c in db.tblArcadeGamePlays
                join a in db.tblProfiles on c.UserID equals a.UserID
                where c.UserID != 0
                select new
                {
                    c.UserID,
                    c.tblForumAuthor.Username,
                    a.EmailAddress,
                    Date = (from d in db.tblArcadeGamePlays where d.UserID == c.UserID orderby d.Date descending select new { d.Date }).Take(1).Single().Date
                })
    .Distinct()
    .OrderByDescending(c => c.Date)
    .Take(16);
Run Code Online (Sandbox Code Playgroud)

但这对我的需求来说太慢了.

这上面的输出缓存不合适,因为这个盒子实时很好.此外,即使对于一个用户来说,正常页面加载的900毫秒也太慢,所以如果可能的话,希望避免这种情况.

有没有人对如何加快这一点有任何想法?我目前的两个想法是:

  • 一个新的数据库表,用于保存最后一个不需要加入的玩家
  • 存储在某个地方的字段,其中包含该框的HTML,每次发生的新游戏都会重建该字段
  • 两者结合

两种丑陋!任何帮助赞赏.

根据要求,linqpad的结果

LAMBDA

TblArcadeGamePlays
   .Join (
      TblProfiles, 
      c => c.UserID, 
      a …
Run Code Online (Sandbox Code Playgroud)

c# linq asp.net optimization performance

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

使用Linq查询+可选参数避免重复代码

鉴于代码:

/// <summary>
/// Get a games high scores
/// </summary>
public static List<Score> GetGameHighScores(int gameID, HighScoreType type, int? skip = null, int? take  = null)
{
    var r = new List<Score>();

    using (var db = new ArcadeContext())
    {
        var q = new List<ArcadeScore>();

        if (skip != null && take != null)
        {
            switch (type)
            {
                case HighScoreType.ScoreRank:
                    q =
                        db.ArcadeScores.Where(c => c.GameID == gameID && c.ScoreRank > 0)
                            .OrderBy(c => c.ScoreRank)
                            .Skip(skip.Value)
                            .Take(take.Value)
                            .ToList();
                    break;
                case HighScoreType.UserRank:
                    q = …
Run Code Online (Sandbox Code Playgroud)

c# linq refactoring dry

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

为什么这个函数第二次运行的速度要快几个数量级?

HashHash在表格中插入了一个新列.然后我需要编写一个小函数来设置HashHashto 的值Sha1(Row.Hash):

public static void UpdateAllHashHashes()
{
    using (var db = new MainContext())
    {
        var q = db.v2Hashes;
        foreach (var rec in q)
        {
            rec.HashHash = GetSha1(rec.Hash);
            db.SubmitChanges();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

该表有数千条记录.我第一次跑它,花了好几分钟.它在结尾附近引发了一个错误,导致它没有完成,并留下了大约20条未经处理的记录,这是我期待的,所以我再次运行该函数以获得最后工作正常的记录.

  • 第一次,约需2分钟
  • 第二次约需2秒钟

第二次传递的原因是如此之快,因为db.SubmitChanges实际上没有执行SQL因为值没有改变?我仍然希望它运行UPDATESQL查询.

或者,这是一个数据库引擎优化吗?

c# linq sql-server performance

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

违反插入时的PRIMARY KEY约束

我有一个简单的表:

IPAddress (PK, string)
Requests (int)
Run Code Online (Sandbox Code Playgroud)

这是一个洪水限制器.每分钟删除表数据.每个页面请求,Requests给定的计数增量IPAddress.

由于我们的产品和网站的性质,我们确实遭受了一些偶然/有意的有效DDOS,因此它运行良好,我们的网站性能显着提高.

唯一的问题是,当IP因某种原因每分钟向我们的网站发送数千个请求时,我们会突然出现这些错误:

违反PRIMARY KEY约束'PK_v2SiteIPRequests'.无法在对象'dbo.v2SiteIPRequests'中插入重复键.重复键值为([IP_ADDRESS]).该语句已终止.

制作插入的代码是:

/// <summary>
/// Call everytime a page view is requested
/// </summary>
private static void DoRequest(string ipAddress)
{
    using (var db = new MainContext())
    {
        var rec = db.v2SiteIPRequests.SingleOrDefault(c => c.IPAddress == ipAddress);
        if (rec == null)
        {
            var n = new v2SiteIPRequest {IPAddress = ipAddress, Requests = 1};
            db.v2SiteIPRequests.InsertOnSubmit(n);
            db.SubmitChanges();
        }
        else
        {
            rec.Requests++;
            db.SubmitChanges();

            // Ban?
            if (rec.Requests >= Settings.MAX_REQUESTS_IN_INTERVAL)
            {
                BanIP(ipAddress); …
Run Code Online (Sandbox Code Playgroud)

c# linq conflict primary-key

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

SQL按顺序删除记录

给定表结构:

Comment
-------------
ID (PK)
ParentCommentID (FK)
Run Code Online (Sandbox Code Playgroud)

我想运行DELETE FROM Comments删除所有记录.

但是,如果在子注释之前删除父注释,则与父注释记录的关系会产生FK冲突.

要解决此问题,以反向ID顺序删除将起作用.如何以反向ID顺序删除表中的所有记录?

sql sql-server sql-delete

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

C# 避免为接口属性重复代码

鉴于接口:

interface IVotable
{
    int TotalUpvotes { get; }
    int TotalDownvotes { get; }
    int TotalVoteScore { get; }
}
Run Code Online (Sandbox Code Playgroud)

通过一个实现:

public class Comment : IVotable
{
    public int TotalUpvotes { get; private set; }
    public int TotalDownvotes { get; private set; }
    public int TotalVoteScore { get { return TotalUpvotes - TotalDownvotes + 1 ; } }
}
Run Code Online (Sandbox Code Playgroud)

避免TotalVoteScore在每个类中实现相同方式的最佳方法是什么?

c# interface class repeat

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