小编Jon*_*ood的帖子

更新行如果存在其他插入逻辑与实体框架

有没有人建议使用实体框架实现"更新行,如果它存在其他插入"逻辑的最有效方法?

c# entity-framework

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

DISTINCT只有一列

假设我有以下查询.

SELECT ID, Email, ProductName, ProductModel FROM Products
Run Code Online (Sandbox Code Playgroud)

如何修改它以使其不返回重复的电子邮件?

换句话说,当多行包含相同的电子邮件时,我希望结果只包含其中一行(最好是最后一行).应允许其他列中的重复项.

类似条款DISTINCT,并GROUP BY出现在整个行工作.所以我不确定如何处理这个问题.

sql sql-server

145
推荐指数
4
解决办法
23万
查看次数

从集合中删除项目的最佳方法

一旦项目已知,但在C#中从集合中删除项目的最佳方法是什么,但不是它的索引.这是一种方法,但它似乎不够优雅.

//Remove the existing role assignment for the user.
int cnt = 0;
int assToDelete = 0;
foreach (SPRoleAssignment spAssignment in workspace.RoleAssignments)
{
    if (spAssignment.Member.Name == shortName)
    {
        assToDelete = cnt;
    }
    cnt++;
}
workspace.RoleAssignments.Remove(assToDelete);
Run Code Online (Sandbox Code Playgroud)

我真正想做的是找到要按属性删除的项目(在本例中为name),而不循环遍历整个集合并使用另外两个变量.

c# collections

69
推荐指数
6
解决办法
13万
查看次数

ASP.NET MVC的最佳存储库模式

我最近学习了ASP.NET MVC(我喜欢它).我正在与一家使用依赖注入的公司合作,在每个请求中加载Repository实例,我熟悉使用该存储库.

但现在我正在编写自己的几个MVC应用程序.我不完全理解我公司使用的存储库的方法和原因,我正在尝试确定实现数据访问的最佳方法.

我正在使用C#和Entity Framework(包含所有最新版本).

我看到了处理数据访问的三种通用方法.

  1. 每次访问数据时,using语句中的常规DB上下文.这很简单,工作正常.但是,如果两个位置需要在一个请求中读取相同的数据,则必须读取两次数据.(每个请求使用一个存储库,两个地方都会使用相同的实例,我理解第二次读取只会返回第一次读取的数据.)

  2. 典型的存储库模式.由于我不理解的原因,这种典型的模式涉及为数据库中使用的每个表创建一个包装类.这对我来说似乎不对.事实上,由于它们也是作为接口实现的,我在技术上会为每个表创建两个包装类.EF为我创建表格.我不相信这种方法是有道理的.

  3. 还有一个通用存储库模式,其中创建单个存储库类以服务所有实体对象.这对我来说更有意义.但对别人有意义吗?链接是最好的方法吗?

我很想从其他人那里得到关于这个话题的一些意见.您是在编写自己的存储库,使用上述方法之一,还是完全不同的方式.请分享.

c# asp.net-mvc repository repository-pattern

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

控制表格单元格之间的间距

我正在尝试创建一个表格,其中每个单元格都有背景颜色,它们之间有空白区域.但我似乎很难做到这一点.

我尝试设置td边距但似乎没有效果.

table.myclass td {
    background-color: lime;
    margin: 12px 12px 12px 12px;
}?
Run Code Online (Sandbox Code Playgroud)

如果我用填充做同样的事情,它可以工作,但是我没有单元格之间的间距.

有人可以帮我吗?

jsFiddle:http://jsfiddle.net/BfBSM/

html css css-tables

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

中心文本垂直位于<DIV>中

我有一个<div>固定高度的元素,我想在该元素中垂直居中一些文本.

我一直在尝试按照http://phrogz.net/css/vertical-align/index.html上的说明进行操作.但是,它似乎对我不起作用.

我已经发布了我正在尝试的http://jsfiddle.net/scwebgroup/74Rnq/.如果我将HeaderBrand的margin-top更改为约-22px,那么它似乎是正确的.

任何人都可以看到为什么文章中描述的技术不能按预期工作?

注意:此处的最佳答案仅适用于文本未换行到第二行的情况.

html css

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

LINQ加入多个From子句

在C#中编写LINQ查询时,我知道我可以使用join关键字执行连接.但是以下是做什么的?

from c in Companies
from e in c.Employees
select e;
Run Code Online (Sandbox Code Playgroud)

一本LINQ书我说它是一种连接,但不是一个正确的连接(使用join关键字).那么究竟是什么类型的连接呢?

c# linq

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

设置Response.Status生成"HTTP状态字符串无效"异常

我正在ASP.NET 4.0和IIS7中编写HTTP处理程序,我需要生成一个文件未找到的条件.

我从Mathew McDonald在C#2010中的新书Pro ASP.Net 4中复制了以下代码.(响应变量是当前HttpResponse的一个实例.)

response.Status = "File not found";
response.StatusCode = 404;
Run Code Online (Sandbox Code Playgroud)

但是,我发现第一行生成了运行时错误 HTTP status string is not valid.

如果,而不是上面的行,我使用以下内容:

response.Status = "404 Not found";
Run Code Online (Sandbox Code Playgroud)

然后一切似乎都很好.实际上,我甚至看到response.StatusCode自动设置为404.

我的问题是我不希望它在生产服务器上失败.如果我能理解实现这一目标的"正确"方法,我会感觉好多了.为什么第一种方法适用于Mathew McDonald而不适合我?第二种方法总是可靠吗?

有人可以提供任何提示吗?

asp.net http-response-codes

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

如何在字典集合中查找项目?

我已经声明并填充了以下集合.

protected static Dictionary<string, string> _tags;
Run Code Online (Sandbox Code Playgroud)

现在我想查找集合中的特定条目.我尝试了以下内容.

thisTag = _tags.FirstOrDefault(t => t.Key == tag);
if (thisTag != default(KeyValuePair<string, string>))
    ...
Run Code Online (Sandbox Code Playgroud)

我收到错误:

运算符'!='不能应用于'System.Collections.Generic.KeyValuePair'和''类型的操作数

最初我试图将结果与之比较null,我想s不支持struct.

我会认为在一个集合中找到一个项目是一项非常简单的任务.那么我如何确定是否找到了我正在寻找的物品?

(注意:我正在使用,Dictionary因为我想要快速查找.我知道我可以Contains()用来确定项目是否存在.但这意味着总共有两次查找,这有点挫败了快速查找的目的.我会如果它可以快速查找项目,我很高兴使用不同的集合,我有办法确定它是否成功.)

c# generics dictionary

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

构建数据库项目时出现"不正确的SET选项"错误

我们使用Visual Studio和数据库项目来生成我们的数据库.

我刚刚进行了一些数据库更改(包括添加一个名为的新表Correspondence)将这些更改导入到数据库项目中,并尝试部署(重建)数据库.

当我这样做时,我收到以下错误:

创建[dbo].[通信] ...消息1934,级别16,状态1,服务器(服务器名称),行1 CREATE TABLE失败,因为以下SET选项具有不正确的设置:'ANSI_WARNINGS,ANSI_PADDING'.验证SET选项是否正确,以便与计算列和/或筛选索引和/或查询通知和/或XML数据类型方法和/或空间索引操作的索引视图和/或索引一起使用.

任何人都可以向我解释这个错误,并帮我解决它?这是数据库项目用于创建此表的脚本.

PRINT N'Creating [dbo].[Correspondence]...';
GO

SET ANSI_NULLS, QUOTED_IDENTIFIER ON;
GO

CREATE TABLE [dbo].[Correspondence] (
    [Id]                INT              IDENTITY (1, 1) NOT NULL,
    [WorkbookId]        INT              NOT NULL,
    [ProviderId]        UNIQUEIDENTIFIER NOT NULL,
    [MessageThreadId]   INT              NOT NULL,
    [MessageThreadType] AS               ((1)) PERSISTED NOT NULL
);
GO

SET ANSI_NULLS, QUOTED_IDENTIFIER OFF;
GO

PRINT N'Creating PK_Correspondence...';
GO

ALTER TABLE [dbo].[Correspondence]
ADD CONSTRAINT [PK_Correspondence] PRIMARY KEY CLUSTERED ([Id] ASC)
    WITH (ALLOW_PAGE_LOCKS = ON, ALLOW_ROW_LOCKS = ON, PAD_INDEX = …
Run Code Online (Sandbox Code Playgroud)

sql-server database-project sql-server-2008

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