为什么在sql server 2005中使用xml时必须设置ARITHABORT?我试着研究为什么我要设置这个,但找不到告诉我原因的答案.只需要设置它.
这是我在取出SET ARITHABORT ON时获得的特定错误消息:
PARAMETER ERROR:INSERT LIST可能无法分配 - INSERT失败,因为以下SET选项的设置不正确:'ARITHABORT'.验证SET选项是否正确,以便与计算列和/或查询通知和/或xml数据类型方法的索引视图和/或索引一起使用.
我的存储过程在一个环境中使用odbc从asp.net调用很好.然后,当我将它移动到另一个时,我必须在存储过程的开头添加SET ARITHABORT ON.我在下面列出了存储过程的相关部分.以及调用它的代码.
CREATE PROCEDURE [dbo].[myproc]
@ruserid varchar(8),
@folder_list xml,
@insert_list xml
AS
SET NOCOUNT ON
SET ARITHABORT ON
DECLARE @rindex integer
DECLARE @errormsg nvarchar(4000)
DECLARE @folder_cnt integer
DECLARE @insert_cnt integer
SET @rindex = -1
-- temp table to hold inserts
CREATE TABLE #insert_list (rowidx integer IDENTITY(1,1), insertdesc varchar(96) COLLATE database_default, insertfolder integer)
-- temp table to hold folders
CREATE TABLE #folder_list (rowidx integer IDENTITY(1,1), folderdesc varchar(144) COLLATE database_default, …Run Code Online (Sandbox Code Playgroud) 我正在使用.NET GDI +绘制业务对象的自定义图表.除其他外,该图由连接对象的几行组成.
在特定场景中,我需要将一条线缩短一个特定数量的像素,比如说10个像素,即找到线的终点之前10个像素的线上的点.
想象一个半径为r = 10像素的圆,以及一条带有起点(x1,y1)和终点(x2,y2)的直线.圆圈以线的终点为中心,如下图所示.
插图http://i45.tinypic.com/140b5w5.gif
如何计算用红色圆圈标记的点,即圆与线之间的交点?这将为我提供该线的新终点,将其缩短10个像素.
感谢您的答案,我可以将以下程序放在一起.我将它命名为LengthenLine,因为如果我想缩短线条,我发现传递负像素数更自然.
具体来说,我试图组合一个可以绘制圆角线的功能,可以在这里找到.
public void LengthenLine(PointF startPoint, ref PointF endPoint, float pixelCount)
{
if (startPoint.Equals(endPoint))
return; // not a line
double dx = endPoint.X - startPoint.X;
double dy = endPoint.Y - startPoint.Y;
if (dx == 0)
{
// vertical line:
if (endPoint.Y < startPoint.Y)
endPoint.Y -= pixelCount;
else
endPoint.Y += pixelCount;
}
else if (dy == 0)
{
// horizontal line:
if (endPoint.X < startPoint.X)
endPoint.X -= pixelCount; …Run Code Online (Sandbox Code Playgroud) 我们正在开发一个带有SQL Server后端的.NET应用程序.客户端请求在部署应用程序后向实体动态添加自定义属性的能力.
正如在类似问题中所建议的那样,我们可以创建一个表,然后为每个自定义属性值(实体 - 属性 - 值模型)包含一行.但是,我们正在考虑允许最终用户实际修改表(也在同一问题中建议),即添加和删除列.
(编辑:如评论中所述,DDL不会由用户或应用程序直接执行,而是通过存储过程确保一切顺利运行)
主要原因是:
我们应该注意哪些警告?
想到的事情是:
select * from table以包含任何添加的列).关于这种方法的任何意见都非常感谢.
我找到了一篇MSDN文章,描述了EF在保存更改时如何处理并发:
默认情况下,[...] Object Services将对象更改保存到数据库,而不检查并发性.对于可能经历高度并发性的属性,我们建议在概念层中使用ConcurrencyMode ="fixed"属性定义实体属性
我有两个问题:
在我的模型中没有属性,我ConcurrencyMode="fixed"可以安全地假设如果OptimisticConcurrencyException在保存更改时抛出了一个,那是因为实体不再存在于数据存储中,即它已被其他用户删除,或者我是遗漏了什么?
我想EF执行一个UPDATE看起来像这样的-statement,正如我所看到的那样,只有OptimisticConcurrencyException当ID = 1的Person不存在时才会抛出:
UPDATE Person SET FirstName = 'John' AND LastName = 'Smith' WHERE ID = 1
Run Code Online (Sandbox Code Playgroud)使用时ConcurrencyMode="fixed",EF在删除实体时是否检查并发性?换句话说,EF是否会执行DELETE看起来像这样的-statement(不仅仅是-clause中的主键WHERE):
DELETE FROM Person WHERE ID = 1 AND LastName = 'Doe'
Run Code Online (Sandbox Code Playgroud)我正在寻找一种方法让生成的Web引用代理类(而不是WCF)实现一个通用接口,以便在客户端应用程序中轻松切换Web服务访问和"直接"访问我们的业务层,如:
public IBusiness GetBusinessObject()
{
if (_mode = "remote")
return new BusinessWebService.Business(); // access through web service proxy class
else
return new Business(); // direct access
}
Run Code Online (Sandbox Code Playgroud)
但是,CustomSerializableType生成的代理类中未引用自定义类型(例如,下面的示例中的自定义类型).而是生成新的相同类型,这使得代理类无法实现接口.
是否有某种方法可以使生成的代理类引用这些类型,或者我是否认为这一切都错了?我应该考虑将Web服务转换为WCF服务吗?
细节
我们的解决方案包括以下四个项目:
CustomSerializableType)我们的客户希望Windows应用程序能够以两种不同的模式运行:
为此,我们创建了一个IBusiness接口,它位于公共库中,包含所有业务方法.
接口
public interface IBusiness
{
CustomSerializableType DoSomeWork();
}
Run Code Online (Sandbox Code Playgroud)
业务层
public class Business : IBusiness
{
public CustomSerializableType DoSomeWork()
{
// access data store
}
}
Run Code Online (Sandbox Code Playgroud)
网络服务
public class WebServiceBusiness : IBusiness
{
private Business _business = new …Run Code Online (Sandbox Code Playgroud) 我正在编写一个小型.NET概念验证控制台应用程序,它在SharePoint文档库上执行一系列操作.我注意到以下方法需要一个"编码"登录名 - 即登录名,包括提供者信息,例如i:0#.w|DOMAIN\user.
context.Web.EnsureUser(encodedLoginName);
context.Web.SiteUsers.GetByLoginName(encodedLoginName);
Run Code Online (Sandbox Code Playgroud)
如何DOMAIN\user在SharePoint客户端对象模型中可靠地将用户名转换为此编码格式?
.net c# sharepoint-api sharepoint-clientobject sharepoint-2013
在我们的应用程序中,许多不同查询中出现的一组标准已经慢慢变得更加复杂.为了避免重复此代码,我想将这些条件拆分为一个方法,该方法将条件作为表达式返回,然后可以在必要时应用它:
public Expression<Func<Invoice, bool>> GetComplexPredicate()
{
// complex predicate is returned as an Expression:
return c => ...
}
Run Code Online (Sandbox Code Playgroud)
重复使用:
var result = repository.Invoice.Where(GetComplexPredicate())
Run Code Online (Sandbox Code Playgroud)
但是,下面的语句不会编译,因为c.Invoice只是一个ICollection.
var result = repository.Customer
.Where(c => c.Country == "US" && c.Invoice.Any(GetComplexPredicate()))
Run Code Online (Sandbox Code Playgroud)
是否可以使用这样的表达式?
c# linq-to-entities expression entity-framework predicatebuilder
我们的C#Windows应用程序使用EWS Managed API 2.0在用户的日历中创建约会.每个约会都有一个具有独特价值的扩展属性.它稍后使用FindItems和找到约会ItemView.
用户在第一次执行此搜索时会遇到严重延迟.后续响应时间完全可以接受.
("第一次"在这里有点模糊,因为用户可能会在当天晚些时候再次遇到延迟)
// locate ID of appointment where extended property value equals 1234:
var filter = new Ews.SearchFilter.IsEqualTo(extendedPropertyDefinition, 1234);
var view = new ItemView(1, 0);
view.PropertySet = BasePropertySet.IdOnly;
var folder = new FolderId(WellKnownFolderName.Calendar, new Mailbox("..."));
var result = service.FindItems(folder, filter, view);
Run Code Online (Sandbox Code Playgroud)
远程服务器是Exchange Server 2007 SP1.
MSDN将一些评论与搜索文件夹和受限制的视图联系在一起,但我不确定这些是否适用于我们的情况.
的行为将着眼于一个文件夹中存储将创建搜索文件夹.创建搜索文件夹时,会将其缓存以供以后使用.如果用户尝试创建已存在的搜索文件夹,则使用缓存的搜索文件夹.这使得未来的观看速度相当快.默认情况下,Exchange不会无限期地缓存所有搜索文件夹.
特别是关于EWS:
同样重要的是要注意这样一个事实,即第一次发布Exchange存储搜索查询时,它将非常缓慢地运行并且可能超时,而在将来的运行中它将毫无问题地响应.这是由执行存储搜索时Exchange服务器上发生的后端进程引起的.
他们建议为非变化的非动态查询创建搜索文件夹,这在我们的案例中似乎不合适,因为每个约会的查询都不同.
如果应用程序需要具有一组固定不变参数的特定查询,则可以使用搜索文件夹.[...]搜索文件夹仅对不变的非动态查询有用.
我们需要的是在本质上创建一个"索引" - 在数据库中 - 在属性上,确保所有对这个特定属性的搜索都是快速的,无论时间或频率.
是否有可能"索引"这个属性?是否可以在客户端或服务器端配置任何内容以消除此初始延迟?
c# extended-properties exchange-server-2007 exchangewebservices
我试图在ASP.NET MVC2 RC 2中创建一个基于日历事件对象的表单.该对象有eventTypeId,它是我需要通过选择列表填充的System.Int32.
用于创建初始视图的控制器是:
[WAuthorize]
public ActionResult AddCalendarEvent()
{
CalendarEventTypesManager calendarEventTypesManager =
new CalendarEventTypesManager();
ViewData["eventTypeId"] = new SelectList(
calendarEventTypesManager.SelectAll(), "Id", "Type");
return View();
}
Run Code Online (Sandbox Code Playgroud)
View的片段(带标题)是:
<%@ Page Title="" Language="C#"
MasterPageFile="~/Views/Shared/Site.Extranet.master"
Inherits="System.Web.Mvc.ViewPage<SomeProject.Models.CalendarEvent>" %>
...
<p><%= Html.DropDownList("eventTypeId") %></p>
Run Code Online (Sandbox Code Playgroud)
哪个结果的HTML:
<p>
<select id="eventTypeId" name="eventTypeId">
<option value="1">All school activities</option>
<option value="2">All school event</option>
</select>
</p>
Run Code Online (Sandbox Code Playgroud)
POST接受控制器是:
[WAuthorize]
// TODO research some more
[ValidateInput(false)]
[AcceptVerbs(HttpVerbs.Post)]
[ValidateAntiForgeryToken]
public ActionResult AddCalendarEvent(CalendarEvent newEvent)
{
...
Run Code Online (Sandbox Code Playgroud)
(我尝试[Bind (Exclude="eventTypeId")]在"CalendarEvent newEvent"参数前面添加,但它不会改变行为.)
问题:当我提交表单时,我收到一个InvalidOperationException异常:
具有键'eventTypeId'的ViewData项的类型为'System.Int32',但必须是'IEnumerable <SelectListItem>'类型.
我在这里和MVC博客上看了很多例子,但到目前为止还不清楚它应该如何工作(看起来基于很多例子,它应该按原样运行).我是否需要创建第二个具有SelectListItem类型变量的模型来接受SelectListItem并将值转换为System.Int32以实际设置eventTypeId?这似乎相当圆润.
当发布引用同一解决方案中的类库(项目)的 ASP.NET 项目 (NET Framework 4.7.1) 时,所有这些项目都在其构建过程中生成了 XML 文档,只有 ASP.NET 项目自己的 XML 文档文件包含在发布的输出。
这些文件对于 Swashbuckle 的 API 文档是必需的。
这只是 VS 发布期间的问题,而不是常规构建的问题。我使用的是 VS Professional 2019 v16.4.2。
如何将引用的类库的 XML 文档文件包含在发布中?这似乎是一个正常的用例,我觉得我错过了一些明显的东西。
我试过了:
c# ×5
.net ×3
sql-server ×2
asmx ×1
asp.net ×1
asp.net-mvc ×1
ddl ×1
drawing ×1
dynamic ×1
expression ×1
gdi+ ×1
geometry ×1
interface ×1
post ×1
publish ×1
selectlist ×1
swashbuckle ×1
web-services ×1
xml ×1