我在从设备上阅读短信时遇到问题.当获取URI' content://sms/inbox' 的内容提供者时,一切都很好,我可以阅读"人员"列,找到人员表中的外键并最终到达联系人及其姓名.
但是,我也想遍历发送的消息.从'content:// sms/sent'读取时,person字段始终显示为0.这是正确读取的字段,以查找已发送邮件的收件人数据吗?如果是这样 - 任何想法为什么我的总是0?
我的所有测试都是在模拟器中完成的,我创建了3个联系人.我以正常方式向您发送消息的模拟器发送了消息.
重申一下,我可以看到4个发送的消息,并阅读相关的正文.我的问题是我似乎无法阅读"人"ID,因此我无法确定收件人是谁.
任何帮助将不胜感激.
非常感谢,
马丁.
我一直在使用LINQ To SQL的.Skip()和.Take()扩展方法一段时间没有问题,但在我使用它们的所有情况下,它一直用于单个表 - 例如:
database.Users.Select(c => c).Skip(10).Take(10);
Run Code Online (Sandbox Code Playgroud)
我的问题是,我现在正在从多个表中投射一组结果,并且我想在整个集合上进行分页(并且仍然可以获得在DB上分页的好处).
我的实体模型如下所示:
一个活动[有很多]小组,一个小组[有很多]联系人
这是通过数据库中的关系建模的
Campaign - > CampaignToGroupMapping - > Group - > GroupToContactMapping - > Contact
我需要生成一个数据结构,其中包含广告系列的详细信息以及通过CampaignToGroupMapping与广告系列相关联的每个联系人的列表,即
Campaign
CampaignName
CampaignFrom
CampaignDate
Recipients
Recipient 1
Recipient 2
Recipient n...
Run Code Online (Sandbox Code Playgroud)
我曾尝试使用.SelectMany编写一个LINQ查询,将每组中的联系人集合投影到一个线性数据集中,希望我能从.Skip().Take()中获取.
我的尝试是:
var schedule = (from c in database.Campaigns
where c.ID == highestPriority.CampaignID
select new PieceOfCampaignSchedule
{
ID = c.ID,
UserID = c.UserID,
Name = c.Name,
Recipients = c.CampaignGroupsMappings.SelectMany(d => d.ContactGroup.ContactGroupMappings.Select(e => new ContactData() { /*Contact Data*/ }).Skip(c.TotalSent).Take(totalRequired)).ToList()
}).SingleOrDefault();
Run Code Online (Sandbox Code Playgroud)
问题是分页(关于Skip()和Take())是针对每个组而不是整个数据集进行的.
这意味着如果我将值200用于参数totalRequired(传递给 …
我有一个数据库表,可以包含许多记录,我想计算表中的当前总数.我打算做一个简单的事情:
DataContext.Table.Count(c => c.condition);
Run Code Online (Sandbox Code Playgroud)
直到我意识到返回类型Count是int.如果表中包含的值多于32位可表示的值,该怎么办?我怎么算他们?
当我们谈论那种规模时,我应该以不同的方式计算它们吗?