据我所知,以下代码对“ MySite”对数据库所做的更改是立即的:
public List<vcData> UpdateDisplayAndUrl(List<vcData> vcDataList)
{
foreach (vcData vcData in vcDataList)
{
_entities.ExecuteStoreCommand("UPDATE vcData SET DisplayItem = {0}, DisplayUrl = {1} WHERE ID = {2} ", vcData.DisplayItem, vcData.DisplayUrl, vcData.ID);
}
return GetTableData();
}
Run Code Online (Sandbox Code Playgroud)
我想做的是立即返回新近更新的记录以进行进一步处理,本质上是重新查询刚刚进行的更改:
public List<vcData> GetTableData()
{
var result = (from td in _entities.vcData
where td.SiteID == "MySite"
select td).ToList();
return result;
}
Run Code Online (Sandbox Code Playgroud)
在我的控制器代码中,我正在尝试执行以下操作:
_currentvcTickerDataList = Repository.UpdateDisplayAndUrl(vcUnupdatedDataList);
//.....do more stuff with _currentvcTickerDataList, which ought to contain updated information, should it not?
Run Code Online (Sandbox Code Playgroud)
问题:该GetTableData()方法似乎不返回更新后的值,而仅返回先前(未更新)的值。
我是LINQ,实体框架和MVC的新手,因此我可以肯定我缺少一些基本知识。
我有一堆实体,我想以类似维基的方式列出,它们将按照标题的第一个字母进行组织,然后计算每个字母存在多少个实体.所以,像:
A(5)
B(7)
C(4)
等
不过,我不知道怎么做.粗糙的伪代码版本:
from g in Games select g.title, /* count */
where /* g.title.firstLetter */ ASC
Run Code Online (Sandbox Code Playgroud)
注释掉的部分是我被卡住的地方.有任何想法吗?
如何将我的LINQ查询结果作为特定对象返回
public CountryTable GetSelectedEventInfo(string SelectedEventID)
{
return (CountryTable) this.context.Event.Where(
e => e.EventID.Equals(Convert.ToInt32(SelectedEventID)));
}
Run Code Online (Sandbox Code Playgroud)
这是我的模特
public class CountryTable
{
public int EventID { get; set; }
public string Title { get; set; }
public DateTime Startdate { get; set; }
public DateTime EndDate { get; set; }
public string EventUrl { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
下面是我的数据库上下文
public DbSet<CountryTable> Event { get; set; }
Run Code Online (Sandbox Code Playgroud)
以下是我想要做的
public CountryTable GetSelectedEventInfo(string SelectedEventID)
{
return (CountryTable) this.context.Event.Where(
e => e.EventID.Equals(Convert.ToInt32(SelectedEventID)));
}
Run Code Online (Sandbox Code Playgroud)
我需要我的查询结果返回CountryTable类型的对象
我有以下代码片段.其中我只想将PartyName作为字符串返回.但我得到错误:"不能隐含转换类型'System.Linq.Iqueryable到字符串"如果我想只返回字符串然后该怎么办?请帮我.
return objDatabase.FAPARs
.Where(f => (f.PARTY_CODE == "P003"))
.Select(f => f.PARTY_NAME);
我有两个类映射我的数据库的两个表:
public class Product
{
public int Id { get; set; }
public string Token { get; set; }
public string Name { get; set; }
public decimal Value { get; set; }
}
public class Ticket
{
public int Id { get; set; }
public string SerialNumber { get; set; }
public string ProductToken { get; set; }
public Product Product { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
由于某些域名原因,产品和故障单在逻辑上是链接的,换句话说,它们没有链接在可由EF映射的数据库关系中,它们将在我的应用程序中链接一个"必须"翻译成的linq查询SQL外左连接.从这里,我做了以下查询:
IQueryble<Ticket> query = from ts in context.Tickets
join ps in context.Products
on …Run Code Online (Sandbox Code Playgroud) 在Windows窗体项目中使用实体数据模型,我想同时将Orders实体绑定到datagridview和textBox,textBox必须根据datagrid中的当前行显示OrderID值.
我在Form load事件中使用的代码是下一个:
using(NorthwindEntities context = new NorthwindEntities())
{
ordersDataGridView.DataSource = context.Orders;
OrderNumberTextBox. ...
}
Run Code Online (Sandbox Code Playgroud)
对于这种情况,绑定Textbox的正确语法是什么?谢谢.
c# linq-to-objects linq-to-entities entity-framework winforms
我是Linq的新手,以下查询一直返回"无法识别System.DateTime"错误.我尝试过Parse和Convert,但都没有用.这是我的查询:
mrcEntities context = GetContext();
var query = from c in context.tblClients
where (c.FirstName != null || c.LastName != null)
&& c.EligibilityDate >= DateTime.Parse("10/01/2011")
&& c.EligibilityDate <= DateTime.Parse("04/30/2012")
orderby c.ClientID
select new
{
ClientID = c.ClientID,
FirstName = c.FirstName,
LastName = c.LastName,
MiddleName = c.MidName,
SSN = c.SSN,
DOB = c.DOB,
Sex = c.Gender,
Ethnic = c.EthnicCode
};
clientRowCnt = query.Count();
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.
我有这样的表在我的数据库一样Customer,Member,Instructor,Employee等每个用户都有自己的电子邮件adrress.我需要检查是否已有用户使用给定的电子邮件.我在考虑:
public bool IsEmailAddressExists(string email)
{
if (!Context.Customers.Any(c => string.Equals(c.Email, email, StringComparison.InvariantCultureIgnoreCase)))
if (!Context.Members.Any(m => string.Equals(m.Email, email, StringComparison.InvariantCultureIgnoreCase)))
...
}
Run Code Online (Sandbox Code Playgroud)
public bool IsEmailAddressExists(string email)
{
var emails = Context.Customers.Select(c => c.Email).Union(Context.Members.Select(m => m.Email))...; //other unions
return emails.Any(e => string.Equals(e, email, StringComparison.InvariantCultureIgnoreCase));
}
Run Code Online (Sandbox Code Playgroud)
有更多的表和许多用户,所以我想知道实现这种检查的最有效方法是什么.
谢谢.
嗨,我有搜索表单,当我在数据库中搜索项目,我想要像谷歌搜索显示时间: 
提前致谢!
当我尝试在LINQ to Entities中运行以下查询时出现错误:
var query = DBConn.myView
.Select(dm => new App.DTOs.MyDTO
{
ID = dm.ID,
Prop1 = dm.Prop1
....
})
.Where(dm => dm.TypeID != 4);
Run Code Online (Sandbox Code Playgroud)
错误消息是:
LINQ expression node type 'TypeID' is not supported in LINQ to Entities
Run Code Online (Sandbox Code Playgroud)
它在.ToList()通话中失败:
private List<MyDTO> lstDTO;
lstDTO = query.ToList();
Run Code Online (Sandbox Code Playgroud)
但是,如果我.Where()从查询中删除它,它的工作原理.有没有办法在Where这个查询中使用该子句?
linq-to-entities ×10
c# ×8
linq ×4
asp.net ×1
iqueryable ×1
outer-join ×1
performance ×1
winforms ×1