我正在尝试使用dapper的多映射功能来返回相册和相关艺术家和流派的列表.
public class Artist
{
public virtual int ArtistId { get; set; }
public virtual string Name { get; set; }
}
public class Genre
{
public virtual int GenreId { get; set; }
public virtual string Name { get; set; }
public virtual string Description { get; set; }
}
public class Album
{
public virtual int AlbumId { get; set; }
public virtual int GenreId { get; set; }
public virtual int ArtistId { get; set; }
public …Run Code Online (Sandbox Code Playgroud) 我有一个问题,我们在现有数据库中使用EF 4.3 Code First.我想使用带有EF的Mini-Profiler并打电话
MvcMiniProfiler.MiniProfilerEF.Initialize();
Run Code Online (Sandbox Code Playgroud)
但是,由于我们实际上没有创建任何表,因此dbo .__ MigrationHistory和dbo.EdmMetadata表不存在.探查器最终崩溃,因为它们不存在.有没有办法让探查器忽略这些EF Code First特定的表?谢谢!
编辑:
这些是我得到的例外:(它们分开来)
Invalid object name 'dbo.__MigrationHistory'.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
at System.Data.SqlClient.SqlDataReader.get_MetaData()
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
at …Run Code Online (Sandbox Code Playgroud) Type t = typeof(T);
t.GetProperty("Company")
Run Code Online (Sandbox Code Playgroud)
如果我写下面的代码,它将给出null
Type t = typeof(T);
t.GetProperty("company", BindingFlags.IgnoreCase)
Run Code Online (Sandbox Code Playgroud)
同时,如果我写这个工作正常.为什么会这样?
Type t = typeof(T);
t.GetProperty("company", BindingFlags.IgnoreCase|BindingFlags.Public | BindingFlags.Instance)
Run Code Online (Sandbox Code Playgroud) 我有一个客户说我使用了Dapper ORM,这是我以前从未使用过的.我有嵌套对象的问题.我有一个主类(Location),它有一个嵌入式值对象类(Address).这两个类看起来像这样:
class Location {
int Id;
string LocationName;
Address LocationAddress;
}
Class Address {
string Street;
string City;
string State;
string ZipCode;
}
Run Code Online (Sandbox Code Playgroud)
SQL:
SELECT Id, LocationName, Street, City, State, ZipCode FROM Locations
Run Code Online (Sandbox Code Playgroud)
我看了一些例子,但我无法正确设置查询.我只是不明白Dapper足以使结构正确.
我有下表,删节:
CREATE TABLE [dbo].[TERMINAL] (
[TERM_CODEID] SMALLINT NOT NULL,
[TERM_ACTIVE] SMALLINT NOT NULL,
[TERM_NAME] VARCHAR (30) NOT NULL,
[TERM_SLA] CHAR (8) NOT NULL,
[TERM_SERIAL] VARCHAR (8) NULL,
[TERM_VERSION] VARCHAR (8) NULL,
[TERM_STATUS] INT NULL,
)
Run Code Online (Sandbox Code Playgroud)
当我尝试以下Dapper代码 - 我是一个完整的Dapper新手,昨天发现它 - 我收到一个错误:
using (var conn = new SqlConnection("data source=ourServer; initial catalog=ourDb;user id=sa;password=ourPassword;"))
{
conn.Open();
var terms = conn.Query<Terminal>("select * from TERMINAL");
}
Run Code Online (Sandbox Code Playgroud)
错误是:
解析第3列时出错(TERM_SLA = 01010B01 - String)
我没有理由为什么甚至不得不"解析"一个字符串,更不用说在这样做时遇到错误.可能导致这种情况的原因>
我有一个用例,要求我启动一些 Azure Durable Functions,而不关心其结果,我想知道我的方法是否正确。
这是我所处的场景:
A使用一个HttpTriggerB使用一个ActivityTrigger这是我的工作流程:
A被调用,需要做一些业务逻辑A调用时运行此任务。A需要尽快返回,这就是为什么我等不及后台任务完成BA返回时处理此后台任务我在网上找到的所有耐用功能示例都显示如下内容:
await starter.StartNewAsync("BackgroundDurableFunction", data)
Run Code Online (Sandbox Code Playgroud)
我的问题是,我不想要await持久功能,但我需要它在后台运行并执行其操作(主要是网络 I/O)。
为了避免等待这个持久功能,我最终采用了以下解决方法:
Task.Factory.StartNew(() => starter.StartNewAsync("BackgroundDurableFunction", data));
Run Code Online (Sandbox Code Playgroud)
这似乎工作得很好,因为我不需要await任何东西,但在阅读了Task.Factory.StartNew 的危险之后,我有点担心这可能是一个危险的解决方案。
所以,问题是:启动持久功能并让它在后台运行而不关心其结果(并且没有关于不等待任务的警告)的正确方法是什么?
我想执行单个查询(或具有多个结果集的存储过程).我知道如何使用Dapper进行多重映射,但我无法对如何将两个集合映射到同一个父集合进行排序.基本上,给定此对象定义...
class ParentObject
{
string Name { get; set; }
ICollection<ChildObjectOne> ChildSetOne {get;set;}
ICollection<ChildObjectTwo> ChildSetTwo { get; set; }
}
class ChildObjectOne
{
string Name { get; set; }
}
class ChildObjectTwo
{
int id { get; set; }
string LocationName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我希望能够运行以某种方式产生的Dapper查询:
IQueryable<ParentObject> result = cnn.Query(
// Some really awesome dapper syntax goes here
);
Run Code Online (Sandbox Code Playgroud) 希望有人可以在node-redis上协助(简单)异步问题.我正在尝试从redis数据库中的哈希加载一个集合,然后再使用该填充集合.这是代码片段: -
var redis_client = redis.createClient(REDIS_PORT, REDIS_URL);
redis_client.hgetall(target_hash,function(e,o){
Object.keys(o).forEach(function(target){
// get the "name" from the hash
redis_client.hget(o[target],"name",function(e,o){
if (e){
console.log("Error occurred getting key: " + e);
}
else {
redis_client.sadd("newset",o);
}
});
});
// the following line prints nothing - why ??
redis_client.smembers("newset",redis.print);
Run Code Online (Sandbox Code Playgroud)
当我在redis中检查"newset"的内容时,它会按预期填充,但在运行时它显示为空.我确定这是一个异步问题 - 任何帮助非常感谢!
我使用 Dapper 库。我有一个动态查询,它从 QueryMultiple 方法返回一个或多个结果集/表。我没有任何具体的结果集数量可以写。Read() 方法的。我们是否有任何函数或方法(例如 result.Count = 返回表的数量)或有多少个。我们可以编写 read() 来检索 N 次。结果集?
SqlMapper.GridReader result = _connection.QueryMultipleAsync(model.APIName, oPara, commandType: CommandType.StoredProcedure).Result;
dynamic dyn = result.Read();
Run Code Online (Sandbox Code Playgroud) 我有一个表,有一个名为“水”的字段,该字段中的数据类型为sql server 2008float。
在我的代码中,我也使用float。
public float? Water { get; set; }
Run Code Online (Sandbox Code Playgroud)
这是我收到的错误消息。
{"Specified cast is not valid."}
{"Error parsing column 2 (Water=15.87 - Double)"}
Run Code Online (Sandbox Code Playgroud)
如果我将类型更改为double,则一切正常。
public double? Water { get; set; }
Run Code Online (Sandbox Code Playgroud)
我回到数据库,水域的所有值都在0-100之间。有一些空值。
请向我解释为什么我必须使用double而不是float?
执行以下查询时,我在InnerException中收到错误
{"OFFSET附近的语法不正确."FETCH语句中NEXT选项的使用无效.关键字'AS'附近的语法不正确.'OFFSET'附近的语法不正确.INFCH语句中NEXT选项的使用无效.语法不正确关键字'AS'.'OFFSET'附近的语法不正确.在FETCH语句中使用NEXT选项无效.关键字'AS'附近的语法不正确."}
C#代码:
var db = new DigilibEntities();
List<title> titles = new List<title>();
titles = db.titles
.Include("themes")
.Include("subjects")
.Include("grades")
.Where(x => x.themes.Count() == 0 ||
x.subjects.Count() == 0 ||
x.grades.Count() == 0)
.OrderBy(x => x.id)
.Skip(10)
.Take(10)
.ToList();
Run Code Online (Sandbox Code Playgroud) 我刚刚在8月1日新月开始的代码中发现了一个DateTime数学错误.我将DateTime类成员设置为7天前的DateTime值.因此它应该在8月1日的价值将是7月25日
我在尝试从1减去7时清楚地看到了问题(DateTime.Now.Day-7).
那么如何创建一个始终有效的DateTime对象,无论它在哪个月份?
错误:
Year, Month, and Day parameters describe an un-representable DateTime.
Run Code Online (Sandbox Code Playgroud)
这是代码:
DateFrom = (new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day-7));
Run Code Online (Sandbox Code Playgroud)
从当前DateTime将此成员设置为7天前的正确方法是什么?