|
Hello !
I try your solution but I get a runtime error :
An unhandled exception of type 'System.NotSupportedException' occurred in EntityFramework.SqlServer.dll
Additional information: LINQ to Entities does not recognize the method 'System.Decimal GetValueOrDefault()' method, and this method cannot be translated into a store expression.
|
|
|
|
|
OK, try moving the .GetValueOrDefault() call to a second Select , with an .AsEnumerable() call to make sure it runs in code rather than SQL:
Dim query = From t In context.MyObj1 where t1.id > 6 Select New With { _
.Parent = t, _
.sash = t.child1.AsQueryable.Where(Function(t2) t2.tp = 2).Sum(Function(t3) CType(t3.quantity, System.Nullable(Of Decimal))), _
.vlh = t.child1.AsQueryable.Where(Function(t3) t3.tp = 2).Sum(Function(t3) CType(t3.value, System.Nullable(Of Decimal))) _
}
Dim lst = query.AsEnumerable().Select(Function(t) New With { _
.Parent = t.Parent, _
.sash = t.sash.GetValueOrDefault(), _
.vlh = t.vlh.GetValueOrDefault() _
}).ToList()
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Hi, im doing a user profile, and i'd like to include the option which will allow to upload a picture from the computer
|
|
|
|
|
Upload it to where? Is this something to do with Visual Basic or a web based issue?
|
|
|
|
|
It is no issue at all, im creating a profile, and i want to create this option, that when u run the application, you will be able to include a picture to your profile, that you will browse form the computer.
I did some googling, and saw that most the codes for this case include "openfiledialog", link label.. and i just cannot come to an end with this, because i just started learning.
|
|
|
|
|
Member 11447662 wrote: most the codes for this case include "openfiledialog", link label. Quite possibly they do, but that still does not explain what your problem is, or where you plan to upload these images to, or indeed how you plan to upload them. I suggest you study http://www.codeproject.com/Messages/1278601/How-to-get-an-answer-to-your-question.aspx[^], and come back with some more specific details. Saying "I want to do X", does not really help us to help you.
|
|
|
|
|
Hello !
I'm using entity framework , and I have several cases where I should run a query than return some parent items , and after I display these parents and the related children in one report.
I want to know which of these methods have the better performance : ( or is there any other better method ??? )
Method1: (the childs collection are loaded later , using lazy loading)
Dim lista as IQueryable(Of MyObj) = (From t In context.MyObjs Where(..condition..) select t).Tolist
Method2:
Dim lista as IQueryable(Of MyObj) = (From t In context.MyObjs Where(..condition..) _
.Include(Function(t2) t2.Childs1) _
.Include(Function(t2) t2.Childs2) _
.Include(Function(t2) t2.Childs2.Child22) _
.Include(Function(t2) t2.Childs1.Childs11) _
.Include(Function(t2) t2.Childs1.Childs12) _
Select t).ToList
Method3:
Dim lista as IQueryable(Of MyObj)
Dim lst= (From t2 In context.MyObjs Where(..condition..) Select New with _
{ .Parent=t2
.ch1=t2.Childs1 _
.ch2=t2.Childs2 _
.ch21=t2.Childs2.Child21) _
.ch11=t2.Childs1.Childs11) _
.ch12= t2.Childs1.Childs12 _
).ToList
lista=lst.Select(Function(t2) t2.parent)
I noticed that the first method cause the report to open very slow.
Also I read somewhere that Include() cause repeat of parent items , lik in this example :
For example: Master -> Details. Say, master has 100 rows, Details has 5000 rows (50 for each master).
If you lazy-load the details, you return 100 rows (size: master) + 5000 rows (size: details).
If you use .Include("Details"), you return 5000 rows (size: master + details). Essentially, the master portion is duplicated over 50 times.
I don't know the logic when use Projections like in the third mode ? Are the master rows duplicated ?????
But anyway I want a professional opinion in general for the three methods.
Thank you !
|
|
|
|
|
Time it, and compare it to a SQL query.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Sorry , but what I need is not timing a specific case , but a general opinion from a person that knows how these method works.
|
|
|
|
|
The problem with that question is we don't know how your database is setup so it's impossible to make that determination.
For example, I had an EF query that I wasn't happy about the performance with and, after a couple of well thought out indexes were put it in, query performance increased considerably.
|
|
|
|
|
ok , but in general :
- It's true that master rows are repeated when using Include () ( like the example I posted before )?
- The same questions for Projections ?
Thank you !
|
|
|
|
|
No, it's not.
If you want to find out what really happens, set a breakpoint on the code on the line that sets up the query. Hover the mouse over the variable that holds the query. It'll show you the SQL that it's going to execute. Just click on the SELECT statement and you can swipe over it and copy the query SQL. Paste that into a SQL Server Manager query window and you can see exactly what the query returns, every row and column.
You can even use the Query Profiler in Server Manager to see the execution plan and how long it takes the database to execute it.
|
|
|
|
|
|
The more Includes you put in, the more data has to be returned from the server.
If you have related tables, such as a one-to-many, in the result, the database will return the "one" record for every related child record that comes back. That's standard behavior for the database engine.
EF will only re-hydrate the parent record into an object once, but will have to re-hydrate each child record, for every Include you put in the query. The more Includes, the more work EF has to do. I would have thought that would be an obvious performance hit.
|
|
|
|
|
Thank you , but what about the case with Projection ?
|
|
|
|
|
That's even MORE work EF has to do!
|
|
|
|
|
Actually , I try to measure the time needed for the example on my first post , and result that the method 3 with projections need less time than the method 2 with Include.
Can you explain this result ?
Thank you !
|
|
|
|
|
No, because again, we have no idea how your database is setup and your EF configuration.
|
|
|
|
|
can I hide the text file in mp3 file using low bit encoding method in vb.net?
if yes, what must I do first?
thanks for attention.
|
|
|
|
|
|
I am currently working on an image based steganography project.
What I can tell you is the first thing you will need to do is figure out how to edit an MP3 file, without your edits having a noticeable effect on the perceived sound.
That is just the start - there is then a large amount of work to do after that, so good luck with your research
“That which can be asserted without evidence, can be dismissed without evidence.”
― Christopher Hitchens
|
|
|
|
|
I'm making a school project, and in the beginning of the project i have "Register " and " Continue as Guest "
so after registering, another form will open, that will require the password and the username created before. The problem is that it wont recognize if i write a wrong password or username, it will continue anyway...hope you can give me a hand, thank you
|
|
|
|
|
You obviously have a problem with your logic but since you didn't show any of the relevant code, it's impossible to tell you what you did wrong.
|
|
|
|
|
you dont need to be rude I just started learning this..
what I have is this :
If TextBox1.Text*this is the username* = Form2.TextBox2.Text And TextBox2.Text*this is the password" = Form2.TextBox3.Text Then
MsgBox("Login succeeded")
Form4.Show()
Me.Hide()
Else
MsgBox("Wrong user/password, try again")
End If
|
|
|
|
|
I just find it amazing that people don't know how to ask questions. Just saying "my code doesn't work" and not providing any context or description of what was done just wastes time. This happens several dozen times per day.
In your case, you code is assuming there are two forms. The first is one where a user logs into the application and the second is where the username and password are being stored. This is NOT standard at all. You normally don't store usernames and passwords in forms. They are normally stored in databases, and in the case of school projects, plain text files.
You might want to think about giving descriptive names to your forms and controls. Leaving them with the default names of "TextBox5" doesn't help because you have no idea what that text box is used for.
The problem you're having is that you're simply comparing the wrong strings to each other and not coming up with a match.
|
|
|
|