小编cor*_*ore的帖子

LINQ to SQL insert-if-non-exist

我想知道如果在表中不存在记录,是否有更简单的方法来插入记录.我还在尝试构建我的LINQ to SQL技能.

这就是我所拥有的,但似乎应该有一种更简单的方法.

public static TEntity InsertIfNotExists<TEntity>
(
    DataContext db,
    Table<TEntity> table,
    Func<TEntity,bool> where,
    TEntity record
)
    where TEntity : class
{
    TEntity existing = table.SingleOrDefault<TEntity>(where);

    if (existing != null)
    {
        return existing; 
    }
    else
    {
        table.InsertOnSubmit(record);

        // Can't use table.Context.SubmitChanges()
        // 'cause it's read-only

        db.SubmitChanges();
    }

    return record;
}
Run Code Online (Sandbox Code Playgroud)

c# linq-to-sql

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

RouteTable.Routes RouteCollection?

我到处看到的MVC样式路由示例是这样的:

void Application_Start(object sender, EventArgs e) 
{
    RegisterRoutes(RouteTable.Routes);
}

public static void RegisterRoutes(RouteCollection routes)
{
    routes.Add(new Route
    (
         "Category/{action}/{categoryName}"
         , new CategoryRouteHandler()
    ));
}
Run Code Online (Sandbox Code Playgroud)

将RouteTable.Routes集合传递给RegisterRoutes()的原因是什么?为什么不呢:

void Application_Start(object sender, EventArgs e) 
{
    RegisterRoutes();
}

public static void RegisterRoutes()
{
    RouteTable.Routes.Add(new Route
    (
         "Category/{action}/{categoryName}"
         , new CategoryRouteHandler()
    ));
}
Run Code Online (Sandbox Code Playgroud)

除RouteTable.Routes之外的RouteCollection会添加一条路由吗?是不是RouteTable.Routes Web应用程序 RouteCollection?

我有一个特殊的IRouteHandler,它有一个Map()方法:

public class ChatRouteHandler : IRouteHandler
{
    private static bool mapped;

    public void Map()
    {
        if (!ChatRouteHandler.mapped)
        {
            RouteTable.Routes.Add
            (
                new Route("chat/{room}/{date}", 
                new ChatRouteHandler())
            );
        }
    }
Run Code Online (Sandbox Code Playgroud)

是否有理由认为Map()应该接受RouteCollection而不是添加到RouteTable.Routes集合?再次,这个IRouteHandler会添加什么其他RouteCollection?

asp.net-mvc routes routetable

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

LINQ to XML:应用XPath

有人能告诉我为什么这个程序不会枚举任何项目?它与RDF名称空间有关吗?

using System;
using System.Xml.Linq;
using System.Xml.XPath;

class Program
{
    static void Main(string[] args)
    {
        var doc = XDocument.Load("http://seattle.craigslist.org/sof/index.rss");

        foreach (var item in doc.XPathSelectElements("//item"))
        {
            Console.WriteLine(item.Element("link").Value);
        }

        Console.Read();
    }
}
Run Code Online (Sandbox Code Playgroud)

c# xml linq xpath linq-to-xml

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

JSON编辑器/格式化程序?

我有一些JSON数据,但它都在一条线上.有没有人知道将为我格式化(例如缩进和插入新行)这个数据的Web或Windows编辑器,所以我可以更好地阅读它?优选地,例如,使用GUI来显示JSON而不是输出重新格式化的文档的命令行工具.

serialization json

10
推荐指数
4
解决办法
6670
查看次数

.NET和数据库层

当我上次编程时,我们试图将DataReaders传统的ADO.NET API转向对象关系映射(ORM).

为此,我们生成了一个DataContextDB通道sqlmetal.然后有一个瘦数据层DataContext private,而且需要访问数据库的任何代码都必须使用public此瘦数据层中的方法.这些方法基本上都是存储过程; 他们将通过LINQ to SQL对数据库执行查询.

这是今天常见的做法吗?我的意思是,每个使用.NET 3.5框架的人是否真的在构建过程中运行sqlmetal,或者是什么?这在当时几乎看起来像是一个黑客.

基本上,我想知道如果我今天要在不使用第三方开源ORM的.NET 3.5商店编写DAL,LINQ to SQL和sqlmetal是否可以预期.

c# database entity-framework linq-to-sql

10
推荐指数
2
解决办法
579
查看次数

让你的收藏线程安全吗?

在设计集合类时,有没有理由不私下实现锁定以使其线程安全?或者我应该将该责任留给收藏的消费者?

c# java collections multithreading

9
推荐指数
3
解决办法
4955
查看次数

ASP.NET:滚动到控件

我在页面中有一个特别大的表单.验证表单并且字段无效时,我想将窗口滚动到该控件.调用控件的Focus()似乎不会这样做.我找到了一个JavaScript解决方法来将窗口滚动到控件,但是ASP.NET内置了什么?

asp.net controls scroll focus

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

方法是否选择退出类级别的AuthorizeAttribute?

我有一个ApiController有10个公共方法的课程.

在这10种方法中,有9种需要[Authorize(Roles="Admin")].没有的,不需要任何授权.

如果不是那个不需要授权的单一方法,我会ApiController[Authorize(Roles="Admin")].

而不是在班级,我用相同的方法装饰所有九个方法,[Authorize(Roles="Admin")]而不是用一个方法来装饰那个单一的方法[Authorize(...)].

我不喜欢这个是我必须重复[Authorize(Roles="Admin")]九次.

有没有办法我可以用它来装饰类[Authorize(Roles="Admin")],并且只[Authorize(Roles="Admin")]用一个属性来装饰不应该有的单个方法,这意味着"不要为这个特定的方法应用类级动作过滤器"?

.net c# asp.net-mvc asp.net-web-api

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

将值解析为可为空的枚举

假设我有这个:

PriorityType? priority;
string userInput = ...;
Run Code Online (Sandbox Code Playgroud)

我无法改变PriorityType? priority它的定义:因为它实际上是与另一段代码的合同的一部分。

我试过这个,但它不起作用:

if (Enum.TryParse<PriorityType?>(userInput, out priority)) {
Run Code Online (Sandbox Code Playgroud)

什么是正确的方法?

c# enums nullable

9
推荐指数
2
解决办法
7762
查看次数

.NET RegionInfo类

当我尝试创建一个具有某些ISO 3166国家代码的新RegionInfo(孟加拉国的"BD",索马里的"SO",斯里兰卡的"LK"),我得到一个ArgumentException,表示它无法识别.

这是怎么回事?RegionInfo的Intellisense(字符串)表示它符合ISO 3166,但不支持这些国家/地区代码?

我不明白.

.net c# globalization regioninfo

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