I’ve added reference to EntityFramework (Downloaded by NuGet) to my MVC 3 project.
I then created the following two classes to represent my tables:
Imports System.ComponentModel.DataAnnotations
Public Class tImage
<Key()>
Public Property ID As Int64
<MaxLength(50)>
Public Property name As String
<MaxLength(255)>
Public Property URL As String
Public Property type As tImageType
<MaxLength(50)>
Public Property tag As String
End Class
Imports System.ComponentModel.DataAnnotations
Public Class tImageType
<Key()>
Public Property ID As Integer
<MaxLength(50)>
Public Property name As String
<MaxLength(255)>
Public Property description As String
End Class
And then created the following class as my data context:
Imports System.Data.Entity
Public Class TyranntDB
Inherits DbContext
Public Property images As DbSet(Of tImage)
Public Property imageTypes As DbSet(Of tImageType)
End Class
I then added the following connection string to my web.config file:
<connectionStrings>
.....
<add name="TyranntDB"
connectionString="Data Source=.\SQL08;Initial Catalog=jsundb;Integrated Security=True;Pooling=False"
providerName="System.Data.SqlClient" />
</connectionStrings>
Everything from this point compiled ok. After this I created an Image Controller
Namespace TyranntServices
Public Class ImageController
Inherits System.Web.Mvc.Controller
Dim _db As New TyranntDB
'
' GET: /Image
Function Index() As ActionResult
Dim model = _db.images
Return View(model)
End Function
...
And the following View to list Images (Well it was mostly auto generated by using the Add View option with list template):
@ModelType IEnumerable(Of TyranntServices.tImage)
@Code
ViewData("Title") = "Index"
End Code
<h2>Index</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table>
<tr>
<th></th>
<th>
name
</th>
<th>
URL
</th>
<th>
tag
</th>
</tr>
@For Each item In Model
@<tr>
<td>
@Html.ActionLink("Edit", "Edit", New With {.id = item.ID}) |
@Html.ActionLink("Details", "Details", New With {.id = item.ID}) |
@Html.ActionLink("Delete", "Delete", New With {.id = item.ID})
</td>
<td>
@item.name
</td>
<td>
@item.URL
</td>
<td>
@item.tag
</td>
</tr>
Next
</table>
This all seems to compile well. When I run though, the tables do not get generated and I get an error stating that the dbo.tImages does not exist.
It’s late now so will post this and hope I can soon update it with what is wrong.
Jas