我有一种情况,我想与字段进行比较(例如,确保开始时间在结束时间之前).我正在使用System.ComponentModel.DataAnnotations属性进行验证.
我的第一个想法是这样的:
public enum CompareToOperation
{
EqualTo,
LessThan,
GreaterThan
}
public class CompareToAttribute : ValidationAttribute
{
CompareToOperation _Operation;
IComparable _Comparision;
public CompareToAttribute(CompareToOperation operation, Func<IComparable> comparison)
{
_Operation = operation;
_Comparision = comparison();
}
public override bool IsValid(object value)
{
if (!(value is IComparable))
return false;
switch (_Operation)
{
case CompareToOperation.EqualTo: return _Comparision.Equals(value);
case CompareToOperation.GreaterThan: return _Comparision.CompareTo(value) == 1;
case CompareToOperation.LessThan: return _Comparision.CompareTo(value) == -1;
}
return false;
}
}
public class SimpleClass
{
public DateTime Start {get;set;}
[CompareTo(CompareToOperation.GreaterThan, …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用MODI来OCR窗口的程序.它适用于截图我使用win32 interop以编程方式抓取,如下所示:
public string SaveScreenShotToFile()
{
RECT rc;
GetWindowRect(_hWnd, out rc);
int width = rc.right - rc.left;
int height = rc.bottom - rc.top;
Bitmap bmp = new Bitmap(width, height);
Graphics gfxBmp = Graphics.FromImage(bmp);
IntPtr hdcBitmap = gfxBmp.GetHdc();
PrintWindow(_hWnd, hdcBitmap, 0);
gfxBmp.ReleaseHdc(hdcBitmap);
gfxBmp.Dispose();
string fileName = @"c:\temp\screenshots\" + Guid.NewGuid().ToString() + ".bmp";
bmp.Save(fileName);
return fileName;
}
Run Code Online (Sandbox Code Playgroud)
然后将此图像保存到文件中并通过MODI运行,如下所示:
private string GetTextFromImage(string fileName)
{
MODI.Document doc = new MODI.DocumentClass();
doc.Create(fileName);
doc.OCR(MODI.MiLANGUAGES.miLANG_ENGLISH, true, true);
MODI.Image img = (MODI.Image)doc.Images[0];
MODI.Layout layout = img.Layout;
StringBuilder sb = …Run Code Online (Sandbox Code Playgroud) 对于某些集成测试,我想使用LINQ to SQL来删除/重新创建测试数据库.我以前工作得很好,但是在这个项目中,数据库被分成几个模式.
当我尝试运行ctx.CreateDatabase()命令时,我得到了这个异常:
指定的模式名称"xyz"不存在,或者您无权使用它.
我用来执行此操作的登录具有以下角色dbcreator- 是否需要进一步的权限?当然,使用persmissions创建数据库的登录应该能够创建该数据库中包含的所有内容吗?
由于看起来使用LINQtoSQL没有解决这个问题的解决方案,有没有人有任何类似工具的建议来生成最好是免费的数据库?理想情况下,我不想忘记手写sql构建脚本.
受MVC店面的启发,我正在研究的最新项目是使用IQueryable上的扩展方法来过滤结果.
我有这个界面;
IPrimaryKey
{
int ID { get; }
}
Run Code Online (Sandbox Code Playgroud)
我有这种扩展方法
public static IPrimaryKey GetByID(this IQueryable<IPrimaryKey> source, int id)
{
return source(obj => obj.ID == id);
}
Run Code Online (Sandbox Code Playgroud)
假设我有一个实现IPrimaryKey的类SimpleObj.当我有一个SimpleObj的IQueryable时,GetByID方法不存在,除非我明确地转换为IPrimaryKey的IQueryable,这不太理想.
我在这里错过了什么吗?
我想弄清楚UrlReferrer控制器动作中的路由值是什么.
我无法弄清楚MVC管道中的哪个部分将传入的URL转换为RouteValues,我想要实现的是接近于此.
查看SignalR 绑定的文档以向指定用户发送消息,您UserId在消息中包含该属性 -
[FunctionName("SendMessage")]
public static Task SendMessage(
[HttpTrigger(AuthorizationLevel.Anonymous, "post")]object message,
[SignalR(HubName = "chat")]IAsyncCollector<SignalRMessage> signalRMessages)
{
return signalRMessages.AddAsync(
new SignalRMessage
{
// the message will only be sent to these user IDs
UserId = "userId1",
Target = "newMessage",
Arguments = new [] { message }
});
}
Run Code Online (Sandbox Code Playgroud)
此示例直接取自文档,但注释暗示您向多个用户 ID发送消息,即使该属性是字符串而不是数组。
您将如何指定多个用户?(例如,如果他们一起在私人聊天频道中)或者评论的措辞是否存在错误,您需要为每个用户发送一条消息?
对于其他版本的 SignalR,我会将它们放在一个组中,但函数不存在此绑定。
这两个语句在逻辑上与我看起来相同,但它们导致生成不同的SQL:
#1
var people = _DB.People.Where(p => p.Status == MyPersonEnum.STUDENT.ToString());
var ids = people.Select(p => p.Id);
var cars = _DB.Cars.Where(c => ids.Contains(c.PersonId));
#2
string s = MyPersonEnum.STUDENT.ToString();
var people = _DB.People.Where(p => p.Status == s);
var ids = people.Select(p => p.Id);
var cars = _DB.Cars.Where(c => ids.Contains(c.PersonId));
Run Code Online (Sandbox Code Playgroud)
示例#1不起作用,但示例#2起作用.
生成的var people查询SQL对于两者都是相同的,但最终查询中的SQL 不同,如下所示:
#1
SELECT [t0].[PersonId], [t0].[etc].....
FROM [Cars] AS [t0]
WHERE EXISTS(
SELECT NULL AS [EMPTY]
FROM [People] AS [t1]
WHERE ([t1].[Id] = [t0].[PersonId]) AND ([t1].[Status] = …Run Code Online (Sandbox Code Playgroud) 我正在编写一个小浏览器游戏作为学习RoR的项目,我对它很陌生.
这是一个由cronjob定期调用的方法.
我猜应该有一些方法可以在魔药数组中添加元素,然后在最后进行批量保存,我也不喜欢每次在循环中点击数据库以再次获得市场的项目数量.
def self.restock_energy_potions
market = find_or_create_market
potions = EnergyPotion.find_all_by_user_id(market.id)
while (potions.size < 5)
potion = EnergyPotion.new(:user_id => market.id)
potion.save
potions = EnergyPotion.find_all_by_user_id(market.id)
end
end
Run Code Online (Sandbox Code Playgroud) 如果我有一个Web应用程序(有自己的web.config)和.dll,那么app.config当发生冲突时,它会使用自己的哪个设置文件获胜?
c# ×5
.net ×3
linq-to-sql ×2
app-config ×1
asp.net-mvc ×1
azure ×1
iqueryable ×1
jquery ×1
linq ×1
modi ×1
ocr ×1
refactoring ×1
routing ×1
ruby ×1
settings ×1
templates ×1
validation ×1
web-config ×1