作为LINQ的新手,我创建了几个查询,并希望将它们组合成一个,但我不知道该怎么做.他们来了:
var u = dc.Users.Where(w => w.UserName == userName).SingleOrDefault();
var m = dc.Memberships.Where(w => w.UserId == u.UserId).SingleOrDefault();
m.PasswordQuestion = securityQuestion;
m.PasswordAnswer = securityAnswer;
dc.SubmitChanges();
Run Code Online (Sandbox Code Playgroud)
dc.Users是aspnet_Users表
dc.Membership是aspnet_Membership表
另外,SingleOrDefault和之间有什么区别FirstOrDefault?
我有以下LINQ查询.问题是,当tblSurveys总共只有20个时,它会返回13k的结果.我究竟做错了什么?
from s in surveyContext.tblSurveys
from st in surveyContext.tblTypes_for_Surveys
from t in surveyContext.tblSurvey_Types
where (s.Survey_Date >= startDate && s.Survey_Date <= stopDate) &&
(s.Unsubstantiated ||
(st.SurveyID == s.SurveyID && st.SurveyTypeID == t.SurveyTypeID &&
t.UnsubstantiatedAvailable && (from d in surveyContext.tblDeficiencies
where d.SurveyID == s.SurveyID
select d.DeficiencyID).Count() == 0))
orderby s.Survey_Date
select s;
Run Code Online (Sandbox Code Playgroud) 我想使用linq to sql将数据输入到我的表(sql 2008)中:
public static bool saveEmail(Emailadressen email)
{
TBL_Emailadressen saveMail = new TBL_Emailadressen();
destil_loterijDataContext db = new destil_loterijDataContext();
saveMail.naam = email.naam;
saveMail.emailadres = email.emailadres;
saveMail.lotnummer = email.lotnummer;
try
{
saveMail.naam = email.naam;
saveMail.lotnummer = email.lotnummer;
saveMail.emailadres = email.emailadres;
db.TBL_Emailadressens.InsertOnSubmit(saveMail);
return true;
}
catch (Exception ex)
{
Console.WriteLine("Opslaan niet gelukt!" + ex.ToString());
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
出于某种原因,没有任何内容添加到此表中.我的表格包含以下字段:
ID(Auto incr int)
Naam(varchar50)
lotnummer(varchar50)
emailadres(varchar50)
我试图保存的对象(saveMail)总是有一个ID = 0,我不知道为什么.我认为那阻止了我保存到数据库?
我有以下适用于SQL查询分析器.
select oh.*
from order_history oh
join orders o on o.order_id = oh.order_id
where oh.order_id = 20119 and oh.date_inserted = (
select max(date_inserted) from order_history where order_id = oh.order_id
group by order_id
)
Run Code Online (Sandbox Code Playgroud)
如何转换为LINQ?从测试代码中,编译器抱怨:
错误运算符'&&'不能应用于'int'和'System.DateTime'类型的操作数
我的LINQ代码:
var query = from ch in cdo.order_histories
join c in cdo.orders on ch.order_id equals c.order_id
where (ch.order_id.equals(1234)) &&
(ch.date_inserted == (cdo.order_histories.Max(p => p.date_inserted)))
select new OrderData() { };
Run Code Online (Sandbox Code Playgroud)
更新:我没有使用'=='进行比较.
剩下的项目来自我的SQL查询:
oh.date_inserted = (
select max(date_inserted) from order_history where order_id = …Run Code Online (Sandbox Code Playgroud) 怎么可以ThenBy翻译成Linq-To-Sql,请?
var movies = _db.Movies.Orderby(c => c.Category).ThenBy(n => n.Name)
var movies = from m in _db.Movies
orderby m.Category
// What's the syntax for ThenBy?!
// thenby m.Name
select m;
Run Code Online (Sandbox Code Playgroud)
当我尝试这样做时thenby m.Name,我得到编译器错误.
我创建了一个SQL服务器压缩数据库(MyDatabase.sdf),并用一些数据填充它.然后我运行SQLMetal.exe并生成一个linq到sql类(MyDatabase.mdf)
现在我试图从一个表中选择相对简单的选择的所有记录,我得到错误:
"解析查询时出错.[令牌行号= 3,令牌行偏移= 67,令牌错误= MAX]"
这是我的选择代码:
public IEnumerable<Item> ListItems()
{
MyDatabase db_m = new MyDatabase("c:\mydatabase.sdf");
return this.db_m.TestTable.Select(test => new Item()
{
ID = test.ID,
Name = test.Name,
RequestData = test.RequestData != null ? test.RequestData.ToString() : null,
Url = new System.Uri(test.Uri)
}.AsEnumerable();
}
Run Code Online (Sandbox Code Playgroud)
我已经读过Linq to SQL与Sql Compact一起工作,我还需要做一些其他的配置吗?
我们有一个很棒的项目,它使用NHibernate作为ORM.我们希望迁移到L2S或L2EF.我们可以做NHibernate所做的一切吗?
你建议我们做这项工作吗?这项工作的优点和缺点是什么?这两个ORM有共同的功能吗?
注意:我们的项目用C#编写.
当使用带有时间戳的linq-to-sql作为复合主键的一部分时,我收到此错误:
"服务器无法生成'Timestamp'类型的主键列."
我猜这可能是因为时间戳只是一个行版本因此也许它必须在插入后创建?要么...
我的程序有以下类定义:
public sealed class Subscriber
{
private subscription;
public Subscriber(int id)
{
using (DataContext dc = new DataContext())
{
this.subscription = dc._GetSubscription(id).SingleOrDefault();
}
}
}
Run Code Online (Sandbox Code Playgroud)
,哪里
_GetSubscription()是一个返回值类型 的sprocISingleResult<_GetSubscriptionResult>
说,我有一个类型List<int>为1000 id的类型列表,我想创建一个类型的订阅者的集合List<Subscriber>.
如果不在循环中调用构造函数1000次,我怎么能这样做?
因为我试图避免频繁地打开/关闭DataContext,这可能会给数据库带来压力.
TIA.
这是我的代码.在调试器中,我可以看到代码正在运行.没有错误被抛出.但是,当我回到桌面时,没有插入任何行.我错过了什么?
protected void submitButton_Click(object sender, EventArgs e)
{
CfdDataClassesDataContext db = new CfdDataClassesDataContext();
string sOfficeSought = officesSoughtDropDownList.SelectedValue;
int iOfficeSought;
Int32.TryParse(sOfficeSought, out iOfficeSought);
Account act = new Account()
{
FirstName = firstNameTextBox.Text,
MiddleName = middleNamelTextBox.Text,
LastName = lastNameTextBox.Text,
Suffix = suffixTextBox.Text,
CampaignName = campaignNameTextBox.Text,
Address1 = address1TextBox.Text,
Address2 = address2TextBox.Text,
TownCity = townCityTextBox.Text,
State = stateTextBox.Text,
ZipCode = zipTextBox.Text,
Phone = phoneTextBox.Text,
Fax = faxTextBox.Text,
PartyAffiliation = partyAfilliatinoTextBox.Text,
EmailAddress = emailTextBox.Text,
BankName = bankNameTextBox.Text,
BankMailingAddress = bankAddressTextBox.Text,
BankTownCity = bankTownCityTextBox.Text,
BankState …Run Code Online (Sandbox Code Playgroud) linq-to-sql ×10
c# ×7
linq ×5
.net ×2
collections ×1
constructor ×1
lambda ×1
nhibernate ×1
orm ×1
sql-server ×1
timestamp ×1