0

これは私のコントローラーアクションです:

<EmployeeAuthorize()>
Function HRA_Table() As ActionResult

    ' get current employee's id
    Dim db1 As EmployeeDbContext = New EmployeeDbContext
    Dim user1 = db1.Tbl_Employees.Where(Function(e) e.Employee_EmailAddress = User.Identity.Name).Single()
    Dim empId = user1.Employee_ID
    Dim empSSN = user1.Employee_SSN

    Dim hra = db.Tbl_HRAs.Where(Function(x) x.SSN = empSSN)

    Return View(hra.ToList)

End Function

これは私のモデルです:

Public Class Tbl_HRA

    <Key()> Public Property HRA_ID() As Integer
    Public Property SSN() As String
    Public Property Height() As Double
    Public Property Weight() As Double
    Public Property Nic_EE() As String
    Public Property Nic_SP() As String
    Public Property BMI() As Double
    Public Property BP_S() As Double
    Public Property BP_D() As Double
    Public Property HDL() As Double
    Public Property LDL() As Double
    Public Property Tot_Chol() As Double
    Public Property Continine() As String
    Public Property Glucose() As Double
    Public Property Waist() As Double
    Public Property Hip() As Double
    Public Property Triglycerides() As Double
    Public Property A1C() As Double
    Public Property LDL_HDL() As Double

End Class

これは私の見解です:

@ModelType IEnumerable(Of GemcoBlog.Tbl_HRA)

@Code
    Layout = Nothing
End Code

@For Each item In Model

    @item.Height

Next

私が得るエラーは次のとおりです。

「Tbl_HRA」の「高さ」プロパティを「文字列」値に設定できませんでした。このプロパティは、'Double' 型の null 以外の値に設定する必要があります。

このエラーが発生する理由を理解できないようです。いくつかの記事を読んで変更しようとしましdoubleたが、それでもうまくいきません!

ご協力いただきありがとうございます。

4

4 に答える 4

0

これは、このデータベースが原因である可能性があります。これらをdoubleではなくvarcharに設定したようですが、これは理想的ではありません。

于 2012-10-03T13:14:52.223 に答える
0

私はこれがあなたを助けると思う

<ul>
    @For Each g As MvcApplication1.Genre In Model
        @<li>@g.Name</li>
    Next
</ul>

詳細については、この URL も参照してください。

http://www.asp.net/web-pages/tutorials/basics/asp-net-web-pages-visual-basic

于 2012-10-03T12:51:20.803 に答える
0

あなたのコメントから、テーブルの列は varchar のようです。その結果、モデルはそれを文字列として定義する必要があります。height プロパティを次のように変更してみてください。

 Public Property Height() As String

残念ながら、LINQ to SQL 実装で型変換を直接行うことはできません。必要に応じて、(Select 句で) 別の型に射影することもできますが、データベースとモデルの間で型を同等にするために、即時フェッチ (context.GetTable(Of T)) が必要になります。

于 2012-10-03T13:17:42.207 に答える
0

この記事は役に立つかもしれません - データベース スキーマに問題があるように見えますか? この列はテーブルで NULL 可能として設定されていますか?

http://digitaltoolfactory.net/blog/2012/03/how-to-fix-yet-another-you-must-set-this-property-to-a-non-null-value-of-type-double-問題-エンティティ-フレームワーク/

于 2012-10-03T12:44:54.810 に答える