在我的代码中,我System.Data.OracleClient
用于ora数据库连接.我想替换这个库(因为它已经过时了)Oracle.DataAccess
.不幸的是我发现DataRow.Field()抛出InvalidCastException
.同样的行为是(decimal)x.Rows[0]["COLUME_NAME"]
.我没有这个问题System.Data.OracleClient
.
这是代码示例
using (var oracleConnection = new OracleConnection(connectionString))
{
using (var command = new OracleCommand("select * from tr", oracleConnection))
{
var result = new DataTable();
var adapter = new OracleDataAdapter(command);
adapter.Fill(result);
Console.WriteLine(result.Rows[0].Field<decimal>("TR_SEQ_NUM"));
//Console.WriteLine((decimal)result.Rows[0]["TR_SEQ_NUM"]);
}
}
Run Code Online (Sandbox Code Playgroud)
TR_SEQ_NUM具有NUMBER(8,0)
数据类型,完整异常为:
System.InvalidCastException: Specified cast is not valid.
at System.Data.DataRowExtensions.UnboxT`1.ValueField(Object value)
Run Code Online (Sandbox Code Playgroud)
代码示例使用System.Data.OracleClient
但不使用Oracle.DataAccess
我知道我可以使用,Convert.ChangeType
但我想知道是否有某种方式可以使用相同的行为System.Data.OracleClient
.重构我的所有代码将花费太多时间.
我使用Parallel来执行具有不同输入值的单个方法,但我想获得该方法的返回值.我怎么才能得到它 ?
public class Work
{
public static void Main()
{
Parallel.Invoke(() => DoWork("Raju"),
() => DoWork("Ramu"));
}
public static string DoWork(string data)
{
return "tesing" + data;
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的方法中我想获得DoWork的返回值.
我已经阅读了关于这个主题已经提出的各种问题,我仍然没有更接近解决我的问题.
我试图反序列化这个xml响应:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<SubmissionResult>
<Result>ACCEPTED</Result>
<SubmissionID>
<RefNo>77587-1425386500</RefNo>
<Submitted>9</Submitted>
<ValidNo>7</ValidNo>
<InvalidNo>2</InvalidNo>
<InvalidNo_1>08452782055</InvalidNo_1>
<InvalidNo_2>01234567890</InvalidNo_1>
<TextvID>77587-1425386500</TextvID>
</SubmissionID>
<Credits>999999</Credits>
</SubmissionResult>
Run Code Online (Sandbox Code Playgroud)
使用这些类:
[XmlRoot ("SubmissionResult")]
public class SubmissionResult
{
[XmlElement ("Result")]
public string Result { get; set; }
public SubmissionID SubmissionID { get; set; }
[XmlElement("Credits")]
public int Credits { get; set; }
}
public class SubmissionID
{
[XmlElement("RefNo")]
public int RefNo { get; set; }
[XmlElement("Submitted")]
public int Submitted { get; set; }
[XmlElement("ValidNo")]
public int ValidNo { get; set; }
[XmlElement("TextVID")] …
Run Code Online (Sandbox Code Playgroud) 我有一个字符串列表:
List<string> tList=new List<string>();
tList.add("a");
tList.add("mm");
Run Code Online (Sandbox Code Playgroud)
我想将此列表转换为字典,因此使用linq键和键的值是相同的
我试过了:
var dict = tList.ToDictionary<string,string>(m => m, c => c);
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
无法将lambda表达式转换为类型'IEqualityComparer',因为它不是委托类型
我有一个现有的业务库,我想使用Web API公开它.我现有的业务类看起来像
public class Business
{
public bool DoSomeBusiness()
{
//Performing long running DB operations
return true;
}
//Other methods
}
Run Code Online (Sandbox Code Playgroud)
我正在编写一个Web API方法,如下面的代码和使用asyn/await以获得更好的可伸缩性.
public class SampleController : ApiController
{
Business _business;
public ValuesController(Business business)
{
_business = business;
}
public async Task<HttpResponseMessage> Get()
{
var result= await Task.Run(() => _business.DoSomeBusiness());
return Request.CreateResponse(HttpStatusCode.OK, result);
}
}
Run Code Online (Sandbox Code Playgroud)
这种方法是否正确?我是否会获得异步行为的真正好处?我不想更改现有的业务层实现,以使它们基于任务.
我有一个带有几个响应模型的ASP.NET Web Api 2项目.在尝试创建较小的有效负载时,我向用户提供了将实体折叠为id和href链接的选项,我想自动生成.我希望我的所有主要资源响应模型都继承自只有href
和的基本响应模型id
.如果我有资源Foo
,这看起来像这样:
public class ResourceResponseModel
{
public string Href { get; private set; }
public string Id { get; private set; }
protected ResourceResponseModel(string id)
{
Id = id;
}
}
public class FooModel : ResourceResponseModel
{
public string Name { get; private set; }
private ExampleModel (string id, string name)
: base(id)
{
Name = name;
}
internal static FooModel From(Foo foo)
{
return new FooModel(
foo.Id,
foo.Name
);
}
} …
Run Code Online (Sandbox Code Playgroud) 因此,当我尝试从 Web Api 获取数据时,就会发生这种情况:
异常消息:
LINQ to Entities 仅支持无参数构造函数和初始值设定项。
这是我的服务:
public async Task<ICollection<TicketDto>> GetAllUnansweredTicketsAsync()
{
return await _context.Tickets.Include(m => m.Message)
.Include(u=>u.User)
.OrderByDescending(d=>d.Message.Date)
.Select(t => new TicketDto(t)).ToListAsync();
Run Code Online (Sandbox Code Playgroud)
这就是我的 DTO 的样子:
public class TicketDto
{
public int ID { get; set; }
public string Username { get; set; }
public string Issue { get; set; }
public DateTime Date { get; set; }
public TicketDto(Ticket ticket)
{
ID = ticket.ID;
Username = ticket.User.UserName;
Issue = ticket.Message.Title;
Date = ticket.Message.Date;
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下如何解决这个问题吗?
我有一个int的列表,model.SelectedIngredients
在这个例子中,列表包含值[15128, 4593,15046,]
.我使用此列表作为我的Linq查询中的过滤器,如下所示:
List<INGREDIENT> selectedIngredients = db.INGREDIENT.Where(i => model.SelectedIngredients.Contains(i.IngredientId)).ToList();
Run Code Online (Sandbox Code Playgroud)
但是,这会将IngredientId升序的结果排序为默认值[4593,15046,15128]
.
我想要的是让selectedIngredients
它们以与它们相同的顺序返回model.SelectedIngredients
.
我知道我可以在for循环中做到这一点,但我只是想知道我是否有办法在Linq查询中做到这一点?
谢谢
如何使用命令重新启动在mule运行时中部署的特定应用程序.例如,我在Mule_Runtime/apps下有一个名为mymuleapp的应用程序.由于我在同一运行时运行其他应用程序,我只想单独重启mymuleapp.
我没有使用cloudhub.我问的原因是,我已将属性文件放在应用程序之外,因此,只要属性发生任何变化,我就会更新它并重新启动应用程序.
请告诉我有没有办法这样做?