小编cre*_*mor的帖子

跨组件的本机映像的内联方法

正如在另一个问题中所解释的,如果方法设置了TargetedPatchingOptOutAttribute,则通常只允许Ngen跨组件内联方法.

但是,通过使用DependencyAttribute,对于硬绑定程序集也是如此吗?LoadHint.Always

编辑:也许我的初始问题的答案是否定的,否则TargetedPatchingOptOutAttribute在mscorlib中使用它是没有意义的,因为这个程序集总是硬绑定(它设置了DefaultDependencyAttribute).所以我想重新解释一下我的问题:是否可以在TargetedPatchingOptOutAttribute组件的原生图像中内联方法?

.net ngen .net-assembly

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

如何在连接错误上清除ODP.NET连接池?

我正在使用NHibernate和ODP.NET连接到Oracle 11g数据库.当然可能存在连接错误(网络故障,DB down,......).我在我的代码中处理所有这些异常,所以没有问题.但是当然用户可以重试他的行为(可能只是一个短暂的网络故障),并且出现了我的问题:

ODP.NET默认使用连接池.通常没问题,但是当用户在连接错误后重试动作时,NHibernate会从ODP.NET获得无效(池化)连接.用户必须多次重试(直到池为空)才能重新运行.

当然我可以在ODP.NET中禁用连接池,但我想避免这种情况.我还读到了一个设置,它检查来自池的每个返回连接的数据库连接,但这会为每个连接增加一个额外的往返,我也想避免.

有没有办法配置ODP.NET在任何连接抛出连接异常时自动清除连接池?

oracle nhibernate ado.net connection-pooling odp.net

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

Word 2007抛出异常代码来操作形状但在Word 2010中正常工作

我在使用水印图片(用作文具)添加水印图片(用作文具)之前遇到了大问题,然后再将其保存为PDF格式.将图片插入所有相关标头是没有问题的.但是一旦我尝试将图片(形状)拉伸到整个页面宽度和高度,Word 2007(SP3)就会抛出异常.相同的代码在Word 2010(SP1)中正常工作.如果我使用Office 12或Office 14互操作程序集(始终与"嵌入互操作类型"一起使用),则无关紧要.

抛出的异常如下:

System.Runtime.InteropServices.COMException (0x800A122C): Falscher Zeichnungselement-Typ für diesen Befehl.
   at Microsoft.Office.Interop.Word.Shape.set_RelativeHorizontalSize(WdRelativeHorizontalSize prop)
   at BEKO.PDB.AuxiliaryServices.Documents.WordCreationService.AddWatermarkToHeader(HeaderFooter header, String watermarkFilePath)
Run Code Online (Sandbox Code Playgroud)

我不确切地知道英文错误信息是什么,但翻译类似于"此命令的无效绘画类型(或可能是形状类型)".

奇怪的是,它在同一个互操作调用中并不总是错误.如果我删除设置RelativeHorizontalSize属性的行,则在设置其他属性时失败,例如WidthRelative(具有相同的异常).如果我添加一个设置的行shape.LeftRelative(到"不使用"常量),它甚至会失败,否则就会起作用shape.Top(再次出现相同的异常).

我正在使用的代码来自在失败的Word 2007中记录的宏.我还正确地在执行任何与头相关的代码之前切换到头SeekView,因为我已经需要其他一些页眉/页脚代码.

这是添加形状的完整代码.它应该只是插入图片并将其拉伸到整页大小.注意:此方法仅针对实际存在(headerFooter.Exists)且未链接到previous(!headerFooter.LinkToPrevious)的标头调用.

private static void AddWatermarkToHeader(HeaderFooter header, string watermarkFilePath) {
   header.Range.Editors.Add(WdEditorType.wdEditorEveryone);

   Shape shape = header.Shapes.AddPicture(
      FileName: watermarkFilePath,
      LinkToFile: false,
      SaveWithDocument: true
   );

   shape.WrapFormat.AllowOverlap = (int)MsoTriState.msoTrue;
   shape.WrapFormat.Type = WdWrapType.wdWrapNone;

   shape.RelativeHorizontalPosition = WdRelativeHorizontalPosition.wdRelativeHorizontalPositionPage;
   shape.RelativeVerticalPosition = WdRelativeVerticalPosition.wdRelativeVerticalPositionPage;
   shape.Left = 0;
   shape.Top = 0;

   shape.RelativeHorizontalSize = WdRelativeHorizontalSize.wdRelativeHorizontalSizePage;
   shape.RelativeVerticalSize …
Run Code Online (Sandbox Code Playgroud)

.net c# ms-word office-interop

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

如何为实体框架创建的 SQL 语句获得更好的表别名?

是否可以控制 Entity Framework 为其创建的 SQL 语句使用哪些表别名?例如,代替

SELECT [Extent1].[Id] AS [Id]
FROM [dbo].[Orders] AS [Extend1]
INNER JOIN [dbo].[Customers] AS [Extend2] ON [Extend1].[CustomerId] = [Extend2].[Id]
WHERE [Extent2].[Name] = 'xyz'
Run Code Online (Sandbox Code Playgroud)

我想得到

SELECT [order].[Id] AS [Id]
FROM [dbo].[Orders] AS [order]
INNER JOIN [dbo].[Customers] AS [customer] ON [order].[CustomerId] = [customer].[Id]
WHERE [customer].[Name] = 'xyz'
Run Code Online (Sandbox Code Playgroud)

或类似的东西,只要我不必记住哪个扩展数是哪个表。当然,在这个简单的示例中它没有问题,但是在您必须[Extend1]进行的查询中,[Extend7]它确实变得复杂了。

.net entity-framework entity-framework-6.1

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

我应该首先在 EF 代码中映射双向关系的两侧吗?

假设我有以下实体类:

public class Customer {
  public int Id { get; set; }
  public virtual ICollection<Order> Orders { get; set; }
}

public class Order {
  public int Id { get; set; }
  public virtual Customer Customer { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这些应该如何在 Entity Framework 6 流畅的代码优先映射中映射?我想明确映射,而不是依赖自动映射约定。

选项1

只需映射两个类的本地属性即可。这就是我在 Fluent NHibernate 中的做法。

public class CustomerMap : EntityTypeConfiguration<Customer> {
  public CustomerMap() {
    HasMany(x => x.Orders);
  }
}

public class OrderMap : EntityTypeConfiguration<Order> {
  public OrderMap() {
    HasRequired(x => x.Customer);
  }
}
Run Code Online (Sandbox Code Playgroud)

选项2 …

.net c# entity-framework ef-code-first entity-framework-6

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

如何禁用不可为空属性的模型属性验证?

我在 ASP.NET Core 6 Web API 项目中使用FluentValidation 。这对于大多数情况都适用,因此:

  • 请求正文 JSON 语法验证由 ASP.NET Core 完成。
  • 请求对象属性验证由 FluentValidation 完成。

但有一个具体情况是有问题的:

  • 如果请求类型包含不可为 null 的属性(例如,string而不是string?)并且请求对象包含其 null 值,则验证由 ASP.NET Core 完成(但应由 FluentValidation 完成)。

我当前的解决方法是注释所有不可为空的属性,[ValidateNever]以便 ASP.NET Core 忽略它们,但这并不好。

有没有办法禁用不可为空属性的 ASP.NET Core 模型属性验证?

注意:我无法完全禁用 ASP.NET Core 验证,因为那样它甚至不会返回 JSON 语法错误的验证错误结果。

fluentvalidation asp.net-core asp.net-core-6.0

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

StringBuilder自动创建新行

我正在使用StringBuilder将列表转换为单个字符串.我不希望字符串有换行符,但它会自动为附加到字符串的每个列表值添加一个新行.

for (int i = 1; i <= ruleN; i++)
{
    string fizz = "F";
    string buzz = "B";
    string fizzBuzz = "FB";
    List<string> numberSet = new List<string>();
    if(i % ruleA == 0 && i % ruleB != 0) //if i is devisible by A  
                                         //but not B
    {
        numberSet.Add(fizz); 
    }
    if(i % ruleB == 0 && i % ruleA != 0) //if i is devisible by B 
                                         //but not A
    {
        numberSet.Add(buzz);
    }
    if(i % ruleA == 0 && …
Run Code Online (Sandbox Code Playgroud)

c# stringbuilder visual-studio-2010 .net-4.5

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

删除名为user1的数据库中的用户;

我在数据库中有一个用户名为"USER1;"的用户 包括分号.如何删除该用户?我试过的时候

SQL> drop user user1; cascade;
drop user user1; cascade
              *
ERROR at line 1:
ORA-00911: invalid character
Run Code Online (Sandbox Code Playgroud)

那么如何删除这个用户呢?

注意:数据库Oracle 11g

sql oracle

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